函数依赖包概述
函数依赖包简介
函数依赖包包含支持函数业务代码运行的公共库,您可以将业务代码所需的公共库封装成依赖包进行单独管理,便于多函数共享,同时也能有效缩减函数代码包在部署与更新过程中的体积。
FunctionGraph支持用户针对同一依赖包进行版本的迭代,即同一依赖包可拥有多个版本,便于系统化管理依赖包。
函数依赖包分为公共依赖包与私有依赖包,请参考为函数配置依赖包进行函数依赖包的配置,具体引入说明请参考支持引入的依赖库说明。
公共依赖包是FunctionGraph内置提供的依赖包,可在函数详情页直接添加所需运行时的依赖包使用,以支持代码实现业务逻辑。
相较于私有依赖包,公共依赖包有以下优势:
- 开箱即用:免去依赖包构建和上传的步骤,直接在函数详情页添加即可使用。无需过多关注如何配置代码运行环境,使您能更专注于代码和业务逻辑的优化。
- 减少延迟:FunctionGraph将公共依赖缓存在平台内,相较于私有依赖包,代码冷启动时无需额外时间从存储服务获取依赖文件,减少了网络延迟。
- 简化操作:私有依赖的文件大小限制为300MB,处理大文件时需拆分并多次上传;而公共依赖包不受300MB的文件限制,简化了添加与删除的操作。
私有依赖包是指您在本地将业务代码所需的公共库自行封装的文件包,即自行创建的依赖包,函数依赖包制作示例请参见制作函数的私有依赖包。
约束与限制
- 依赖包内文件名不能以~结尾。
- 依赖包文件限制数为30000。
支持引入的依赖库说明
FunctionGraph支持引入标准库及第三方依赖库。
- 标准库
- FunctionGraph内置的非标准库
FunctionGraph内置了部分非标准库,如表1、表2所示。使用方法同标准库,在编写代码时直接引入即可。
表1 Node.js Runtime集成的三方件 名称
功能
版本号
q
异步方法封装
1.5.1
co
异步流程控制
4.6.0
lodash
常用工具方法库
4.17.10
esdk-obs-nodejs
OBS sdk
2.1.5
express
极简web开发框架
4.16.4
fgs-express
在FunctionGraph和API Gateway之上使用现有的Node.js应用程序框架运行无服务器应用程序和REST API 。提供的示例允许您使用Express框架轻松构建无服务器Web应用程序/服务和RESTful API 。
1.0.1
request
简化http调用,支持HTTPS并默认遵循重定向。
2.88.0
Node.js引入依赖库示例如下:const ObsClient = require('esdk-obs-nodejs');
表2 Python Runtime支持的非标准库 模块
功能
版本号
dateutil
日期/时间处理
2.6.0
requests
http库
2.7.0
httplib2
httpclient
0.10.3
numpy
数学计算
pip2.7,numpy==1.16.6
pip3.10,numpy==1.24.2
pip3.9,numpy==1.18.5
pip3.6,numpy==1.18.5
redis
redis客户端
2.10.5
ObsClient
OBS客户端
3.0.3
smnsdk
访问公有云SMN服务
1.0.1
Python引入依赖库示例如下:from com.obs.client.obs_client import ObsClient
- 其他第三方库
需要在本地将依赖的第三方库打包为ZIP文件,上传至OBS桶或直接在函数控制台上传,在“代码”页签下添加相关的依赖包,即可在函数代码中使用。具体操作步骤请参见为函数配置依赖包。