更新时间:2024-03-01 GMT+08:00

如何制作函数依赖包?

制作函数依赖包推荐在EulerOS环境中进行。使用其他系统打包可能会因为底层依赖库的原因,运行出问题,比如找不到动态链接库。

如果安装的依赖模块需要添加依赖库,请将依赖库归档到zip依赖包文件中,例如,添加.dll、.so、.a等依赖库。

搭建EulerOS环境

EulerOS是基于开源技术的企业级Linux操作系统软件,具备高安全性、高可扩展性、高性能等技术特性,能够满足客户IT基础设施和云计算服务等多业务场景需求。此处推荐Huawei Cloud EulerOS

  1. 在华为云购买一台EulerOS的ECS弹性云服务器,请参见购买并登录Linux弹性云服务器。在基础配置环节选择公共镜像时,选择Huawei Cloud EulerOS操作系统和具体的镜像版本。
  2. 下载EulerOS镜像,在本地使用虚拟化软件搭建EulerOS系统的虚拟机。

为Python函数制作依赖包

打包环境中的Python版本要和对应函数的运行时版本相同,如Python2.7建议使用2.7.12及以上版本,Python3.6建议使用3.6.3以上版本。

为Python 2.7安装PyMySQL依赖包,并指定此依赖包的安装路径为本地的/tmp/pymysql下,可以执行如下命令。

pip install PyMySQL --root /tmp/pymysql

执行成功后,执行以下命令。

cd /tmp/pymysql/

进入子目录直到site-packages路径下(一般路径为usr/lib64/python2.7/site-packages/),接下来执行以下命令。

zip -rq pymysql.zip *

所生成的包即为最终需要的依赖包。

如果需要安装存放在的本地wheel安装包,直接输入:

pip install piexif-1.1.0b0-py2.py3-none-any.whl --root /tmp/piexif   
//安装包名称以piexif-1.1.0b0-py2.py3-none-any.whl为例,请以实际安装包名称为准

为Nodejs函数制作依赖包

需要先保证环境中已经安装了对应版本的Nodejs。

为Nodejs 8.10安装MySQL依赖包,可以执行如下命令。

npm install mysql --save

可以看到当前目录下会生成一个node_modules文件夹。

  • Linux系统

    Linux系统下可以使用以下命令生成zip包。

    zip -rq mysql-node8.10.zip node_modules

    即可生成最终需要的依赖包。

  • windows系统

    用压缩软件将node_modules目录压缩成zip文件即可。

如果需要安装多个依赖包,也可以先新建一个package.json文件,例如在package.json中填入如下内容后,执行如下命令。

{
	"name": "test",
	"version": "1.0.0",
	"dependencies": {
		"redis": "~2.8.0",
		"mysql": "~2.17.1"
	}
}
npm install --save

不要使用CNPM命令制作nodejs依赖包。

然后将node_modules打包成zip即可生成一个既包含MySQL也包含redis的依赖包。

Nodejs其他版本制作依赖包过程与上述相同。

为Java函数制作依赖包

使用Java编译型语言开发函数时,依赖包需要在本地编译。开发Java函数中如何添加依赖包请参考Java函数开发指南(使用IDEA工具普通Java项目)

为PHP函数制作依赖包

制作函数依赖包推荐在EulerOS2.9.6环境中进行。

为php7.3通过composer安装protobuf3.19依赖包,默认环境中已经安装了composer和对应版本的php。

新建一个composer.json文件,在composer.json中填入以下内容。
{
    "require": {
        "google/protobuf": "^3.19"
    }
}
执行如下命令。
Composer install

可以看到当前目录底下生成一个vendor文件夹,文件夹中有autoload.php、composer 和google三个文件夹。

  • Linux系统

    Linux系统下可以使用以下命令生成zip包。

    zip –rq vendor.zip vendor
  • windows系统

    用压缩软件将vendor目录压缩成zip文件即可。

    如果要安装多个依赖包,在composer.json文件中指定需要的依赖,把生成的vendor文件整体打包成zip上传。

php工程代码中使用通过composer下载的第三方依赖时,需要通过require "./vendor/autoload.php" 加载,平台默认把上传的zip包解压后的内容置于项目代码的同级目录下。

依赖包管理 所有常见问题

more