跳到主要内容

文件层

如果您的云函数拥有较多的依赖库或公共代码文件,您可以使用云函数中的层进行管理。使用层管理,您可以将依赖放在层中而不是部署包中,可确保部署包保持较小的体积。

说明

  • 层中的文件将会添加到 /opt 目录中,此目录在函数执行期间可访问。
  • 如果您的函数已绑定了多个层,这些层将按顺序合并到 /opt 目录中。如果同一个文件出现在多个层中,平台将会保留最大序号层里的文件。
  • 如果您正在使用层版本被删除,与该层版本绑定的函数将会继续运行。

创建层

您可以使用下面的命令创建层,创建层时,需要指定层别名、环境 Id、以及层内容的路径。层的名称由层别名和环境 Id 组成,层名称为层的唯一标识。每个层支持多种云函数运行时,既可以与多种不同运行时的云函数进行绑定。CLI 创建的层默认支持 Nodejs8.9Nodejs12.16Php7Java8 等 4 个运行时。

上传层内容为 ZIP 文件格式,使用 CLI 上传时,您可以指定 file 选项为文件夹或者 ZIP 文件路径,当路径为文件夹时,CLI 将会打包文件夹中的内容为 ZIP 文件。

每次创建成功后,会生成新的层版本,层版本从 1 开始,新的层版本为已有版本的最大值 + 1。文件层不能更新,仅能发布新的层或删除已有的层。文件层的任意一个版本均可以删除,删除后的版本无法再绑定到新的云函数。删除文件层及版本不影响已经绑定的云函数,在已经绑定的函数中仍然可以使用。

单个用户最多创建 20 个文件层,单个文件层版本号从 1 开始,最大可到 200。

提示

不建议层文件的大小超过 100M

# 上传文件目录
tcb fn layer create <alias> -e envId --file ./content
# 上传 ZIP 文件
tcb fn layer create <alias> -e envId --file ./file.zip

云函数绑定层

云函数绑定层后,就可以在云函数中访问层内容。您可以使用下面的命令绑定层到云函数,name 参数为云函数的名称。

tcb fn layer bind <name> -e envId
提示

每个函数最大可配置 5 个文件层(层名 + 版本唯一确定)

云函数解绑层

您可以使用下面的命令解绑云函数绑定的层,name 参数为云函数的名称。

tcb fn layer unbind <name> -e envId

调整层的顺序

您可以使用下面的命令对云函数绑定的层进行重新排序,name 参数为云函数的名称。

tcb fn layer sort <name> -e envId

下载层的文件

您可以使用下面的命令下载层的文件,只能下载指定环境的层文件。

tcb fn layer download -e envId

删除层

您可以使用下面的命令删除层,只能删除指定环境中创建的层,当层的所有版本都被删除时,即意味着层也被删除,您无法再看到此层。

tcb fn layer delete -e envId

在完全删除文件层后,如果创建新的同名文件层,使用原有文件层最大版本 + 1 的版本号。

层展示

您可以使用下面命令获取层的相关信息。

# 展示所有环境中的层
tcb fn layer list

# 展示指定环境中的层
tcb fn layer list -e envId

# 展示函数绑定的层
tcb fn layer list -e envId --name <name>

# 展示层的版本信息
tcb fn layer list -e envId --layer <layer>