文件层
CLI 0.x 版本将被废弃,文档停止更新,请移步 v1 版本 文档
如果您的云函数拥有较多的依赖库或公共代码文件,您可以使用云函数中的层进行管理。使用层管理,您可以将依赖放在层中而不是部署包中,可确保部署包保持较小的体积。
说明
- 层中的文件将会添加到
/opt
目录中,此目录在函数执行期间可访问。 - 如果您的函数已绑定了多个层,这些层将按顺序合并到
/opt
目录中。如果同一个文件出现在多个层中,平台将会保留最大序号层里的文件。 - 如果您正在使用层版本被删除,与该层版本绑定的函数将会继续运行。
创建层
您可以使用下面的命令创建层,创建层时,需要指定层别名、环境 Id、以及层内容的路径。层的名称由层别名和环境 Id 组成,层名称为层的唯一标识。每个层支持多种云函数运行时,既可以与多种不同运行时的云函数进行绑定。CLI 创建的层默认支持 Nodejs8.9
、Nodejs10.15
、 Php7
、Java8
等 3 个运行时。
上传层内容为 ZIP 文件格式,使用 CLI 上传时,您可以指定 file
选项为文件夹或者 ZIP 文件路径,当路径为文件夹时,CLI 将会打包文件夹中的内容为 ZIP 文件。
每次创建成功后,会生成新的层版本,层版本从 1 开始,新的层版本为已有版本的最大值 + 1。文件层不能更新,仅能发布新的层或删除已有的层。文件层的任意一个版本均可以删除,删除后的版本无法再绑定到新的云函数。删除文件层及版本不影响已经绑定的云函数,在已经绑定的函数中仍然可以使用。
单个用户最多创建 20 个文件层,单个文件层版本号从 1 开始,,最大可到 200。
不建议层文件的大小超过 100M
# 上传文件目录
tcb functions:layer:create <alias> -e envId --file ./content
# 上传 ZIP 文件
tcb functions:layer:create <alias> -e envId --file ./file.zip
云函数绑定层
云函数绑定层后,就可以在云函数中访问层内容。您可以使用下面的命令绑定层到云函数,name
参数为云函数的名称。
tcb functions:layer:bind <name> -e envId
每个函数最大可配置 5 个文件层(层名 + 版本唯一确定)
云函数解绑层
您可以使用下面的命令解绑云函数绑定的层,name
参数为云函数的名称。
tcb functions:layer:unbind <name> -e envId
调整层的顺序
您可以使用下面的命令对云函数绑定的层进行重新排序,name
参数为云函数的名称。
tcb functions:layer:sort <name> -e envId
下载层的文件
您可以使用下面的命令下载层的文件,只能下载指定环境的层文件。
tcb functions:layer:download -e envId
删除层
您可以使用下面的命令删除层,只能删除指定环境中创建的层,当层的所有版本都被删除时,即意味着层也被删除,您无法再看到此层。
tcb functions:layer:delete -e envId
在完全删除文件层后,如果创建新的同名文件层,使用原有文件层最大版本 + 1 的版本号。
层展示
您可以使用下面命令获取层的相关信息。
# 展示所有环境中的层
tcb functions:layer:list
# 展示指定环境中的层
tcb functions:layer:list -e envId
# 展示函数绑定的层
tcb functions:layer:list -e envId --name <name>
# 展示层的版本信息
tcb functions:layer:list -e envId --layer <layer>