开发函数计算的正确姿式 —— 依赖安装方法一览

1. 前言

首先介绍下在本文出现的几个比较重要的概念:php

函数计算(Function Compute): 函数计算是一个事件驱动的服务,经过函数计算,用户无需管理服务器等运行状况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。
Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它经过一个资源配置文件(template.yml),协助您进行开发、构建、部署操做。

如何在函数计算中安装依赖,一直是一个困扰用户的难题。咱们写过不少文章,也推出不少功能,都是为了解决用户安装依赖“痛”的问题。html

*备注:请确保 Fun 工具版本在 3.0.0+java

2. 依赖安装方法一览

咱们曾写过一系列文章介绍如何安装函数依赖,此次,咱们从用户需求的视角对这些安装方式进行简单分类,以便于用户能够根据本身的需求,寻找到正确的解决方法。node

2.1 用户需求一:我就想安装一个库到函数,能不能不让我理解 pip、apt-get 等包管理工具的复杂概念?

fun install 支持这种安装方式,使用方法为,安装到某个函数下代码目录下,只须要在 template.yml 所在的目录执行:python

  1. 安装 apt-get 依赖:fun install -f functionName -p apt libzbar0
  2. 安装 pip 依赖:fun install -f functionName -p pip flask

-p 指的是安装的库类型,如今支持 pip、apt 两种。由于这两种类型的库安装难度是比较大的。那么对于 npm、maven 这些库,怎么装?往下看linux

另外,-f functionName 指的是会将依赖安装到这个函数目录下。若是想安装依赖到当前目录也是支持的,能够经过 fun install -h 查看更多帮助信息或者阅读《开发函数计算的正确姿式 —— 安装第三方依赖》git

2.2 用户需求二:我想装的库,安装步骤比较复杂,我只知道怎么在 linux 服务器上装,函数计算可否提供相同的安装体验?

经过 Fun 3.0 提供的 fun innstall sbox 能够作到这一点。github

使用方法为,在 template.yml 所在的目录,执行以下命令:npm

fun install sbox -f pyzbar-fun -i复制代码

其中 -f pyzbar-fun 指的是 template.yml 声明的一个函数。flask

执行完成后,就会进入一个用于安装依赖的交互式环境。这个交互式环境实际上是一个函数计算的模拟环境,在这个环境上装的依赖,能够在最大程度上保证,部署后,不会出现由于环境差别致使的兼容问题。

在这个环境里,常见的 linux 命令都是可使用的,好比 apt-get、pip、npm 等等。只不过,在安装 apt-get 以及 pip 库时,须要添加 fun-install 前缀。好比原先装一个包的步骤为 pip install flask,那在这个环境中,只须要添加 fun-install 前缀就行了,也就是 fun-install pip install flask。

注意: 直接在交互环境使用 pip 也是能够的,只不过,经过原生命令 pip 安装的依赖都会被安装到系统目录里,退出交互式环境时,这些依赖不会保留下来。而经过 fun-install 安装的依赖会被安装到代码目录,退出交互式命令时,能够被保留下来。

交互式安装依赖的更多帮助信息,请参考《开发函数计算的正确姿式——使用交互模式安装依赖》

2.3 用户需求三:我是 node/java/php/c# 用户,我想装一些库,怎么装?

npm 的库安装自己就比 python、apt-get 的库容易不少。缘由是 npm install 后,会直接安装在项目目录的 node_modules 里,只要打包的时候,也就是将 template.yml 中的 CodeUri 指向 node_modules 所在的目录就行了。更多信息参考

java 库安装思路为在 maven 声明依赖,而后在打包时,将全部依赖都打包到同一个 jar 中,而后部署就能够了。更多信息参考

php 以及 c# 的思路其实都是相似的,能够参考 php 的文档以及 c# 的文档

2.4 用户需求四:装完后,有没有办法“录制”下来,再次须要的时候,能够一键安装?

请参考咱们的 Funfile 文档

2.5 用户需求五:个人安装比较复杂,即便在本地,我也不知道要怎么装,大家有什么方案吗?

这种场景,其实并无统一的解决方案,只能 case by case 的解决。目前,咱们已经积累了一些解决方案,基本上都是“开箱即用”的。能够参考 Fun 主页的“第三方模板”章节。

能够阅读下咱们的 《函数计算安装依赖库方法小结》,这个是原理性文章,包括咱们推出的一些功能,都是基于这里介绍的原理来实现的。

若是依旧没能解决问题,能够去咱们的博客里扒一扒,也许有意外收获。

3. 总结

上面介绍了一些常见的依赖安装的问题以及相关的解决方案。


原文连接

本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索