更新时间:2024-12-16 GMT+08:00
分享

函数依赖包概述

函数代码一般包含公共库和业务逻辑两部分。对于公共库,您可以打包成依赖包单独管理,共享给多个函数使用,同时也减少了函数代码包部署、更新时的体积。

FunctionGraph也提供了一些公共依赖包,公共依赖包在平台内部缓存,消除了冷启动加载的影响,推荐您优先使用。

依赖包管理模块统一管理用户所有的依赖包,用户可以通过本地上传和obs地址的形式上传依赖包,并为依赖包命名。同时支持用户针对同一依赖包进行迭代更新,即同一依赖包可拥有多个版本,便于用户对依赖包进行系统化管理。

函数依赖包生成示例请参见制作函数的私有依赖包

公共依赖

公共依赖是华为云为用户直接提供的依赖包,用户可以在函数界面直接导入相关依赖包实现自己代码的业务逻辑。

与私有依赖相比,公共依赖有如下优势:

  • 公共依赖为用户提供了开箱即用的依赖生态,不需要用户进行繁琐的依赖包构建和上传,仅需在函数界面直接导入即可使用。用户无需过多关注配置代码运行环境,可以投入更多的精力关注代码和业务逻辑
  • FunctionGraph将公共依赖缓存在平台内,相比于私有依赖,用户代码冷启动时不需要承担访问存储服务获取依赖文件的网络时延开销。
  • 私有依赖的文件大小限制为300M,对于较大的依赖包用户需要对文件进行多次拆分并上传;公共依赖可以突破300M的文件限制,导入和删除都更加方便。
  • 依赖包内文件名不能以~结尾。
  • 依赖包当前文件限制数为30000。
  • 如果函数配置了私有依赖包且依赖包很大的话,建议在函数详情页的“设置 > 常规设置”重新设置函数执行时间,在原基础上增加超时时间。

支持的依赖库说明

FunctionGraph支持引入标准库及第三方依赖库。

  • 标准库

    对于标准库,无论是在线编辑或是线下开发打包上传至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

    表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

  • 其他第三方库(除了上面表格列举的非标准三方库,FunctionGraph没有内置别的非标准三方库)

    将依赖的第三方库打包,上传至OBS桶或在函数界面上传,最后可在函数代码中使用其功能。

相关文档