由于函数计算的各个语言环境内无法包含所有的依赖库,因此您使用FC组件成功部署项目后可能会调用失败。例如您编写的Python函数需要访问MySQL库,在调用函数时由于Python的运行环境内没有该库导致函数执行失败,因此在部署前需安装MySQL依赖库。本文介绍如何在各个语言下使用FC组件安装依赖。
操作步骤
- Python pip包管理器的requirements.txt文件。
- Node.js npm包管理器的package.json文件。
- Java maven包管理器的pom.xml文件。
- PHP包管理器的composer.json文件。
- 容器镜像的Dockerfile文件。
codeUri
参数信息中。
下文以Python 3为例,介绍如何安装依赖:
- 开发编辑源代码(图示中①)。
- 在项目目录中执行以下命令安装依赖:
s build --use-docker
执行该命令后,Serverless Devs会根据requirements.txt文件的内容下载对应的依赖至.s目录中(图示中②)。
- 执行以下命令部署项目:
s deploy
执行部署命令后,Serverless Devs会根据交付产物.s目录内的内容创建函数,同时设置依赖库的环境变量(图示中③),便于函数直接引入对应的代码依赖库。在执行输出的过程中您可以看到添加的环境变量如下图所示:
下文以Node.js 10为例,介绍如何安装依赖:
- 开发编辑源代码(图示中①)。
- 在项目目录中执行以下命令安装依赖:
s build --use-docker
执行该命令后,Serverless Devs会根据package.json文件的内容下载对应的依赖至.s目录中(图示中②)。
- 执行以下命令部署项目:
s deploy
执行部署命令后,Serverless Devs会根据交付产物.s文件内的内容创建函数,同时设置依赖库的环境变量(图示中③),便于函数直接引入对应的代码依赖库。在执行输出的过程中您可以看到添加的环境变量如下图所示:
下文以Java 8为例,介绍如何安装依赖:
- 开发编辑源代码(图示中①)。
- 在项目目录中执行以下命令,编译Java工程安装依赖:
s build --use-docker
执行该命令后,Serverless Devs会根据pom.xml文件的内容下载对应的依赖至.s目录中(图示中②)。
- 执行以下命令部署项目:
s deploy
执行部署命令后,Serverless Devs会根据交付产物.s文件内的内容创建函数,同时设置依赖库的环境变量,便于函数直接引入对应的代码依赖库。在执行的输出如下图所示:
下文以PHP 7.2为例,介绍如何安装依赖:
- 开发编辑源代码(图示中①)。
- 在项目目录中执行以下命令安装依赖:
s build --use-docker
执行该命令后,Serverless Devs会根据composer.json文件的内容下载对应的依赖至.s目录中(图示中②)。
- 执行以下命令部署项目:
s deploy
执行部署命令后,Serverless Devs会根据交付产物.s文件内的内容创建函数,同时设置依赖库的环境变量,便于函数直接引入对应的代码依赖库。在执行输出的过程中您可以看到添加的环境变量如下图所示:
下文以Custom Container为例,介绍如何安装依赖:
- 开发编辑源代码,修改s.yml文件,将文件内的
image
修改成您的ACR镜像。 - 在项目目录中执行以下命令安装依赖:
s build --use-docker --dockerfile ./Dockerfile
执行该命令后,Serverless Devs会根据Dockerfile文件的内容下载对应的依赖至.s目录中。
- 执行以下命令部署项目:
s deploy -y
更多信息
codeUri
参数信息中。