跳到主要内容

层管理

如果您的云函数拥有较多的依赖库或公共代码文件,您可以使用云函数中的「层」进行管理。

使用层管理,您可以将依赖放在层中而不是部署包中,可确保部署包保持较小的体积。对于 Node.js、Python 和 PHP 函数,只需将部署程序包保持在 10MB 以下,就可以在控制台中在线编辑函数代码。

工作方式#

创建与绑定#

创建层的压缩文件将按照层的版本进行存储。

层在与函数进行绑定时,将按照具体的层版本与函数版本进行绑定。

一个函数目前最多支持绑定 5 个层的具体版本,并在绑定时有一定顺序。

运行时加载与访问#

已绑定层的函数被触发运行,启动并发实例时,将会解压加载函数的运行代码至 /var/user/ 目录下,同时会将层内容解压加载至 /opt 目录下。

若需使用或访问的文件 file,放置在创建层时压缩文件的根目录下。则在解压加载后,可直接通过目录 /opt/file 访问到该文件。若在创建层时,通过文件夹进行压缩 dir/file,则在函数运行时需通过 /opt/dir/file 访问具体文件。

在函数绑定了多个层的情况下,层中文件的解压加载将按照绑定时的顺序进行。将按序号从小到大的顺序进行排序,排序越靠后侧层加载时间也相应靠后,但均会在函数的并发实例启动前完成加载。在函数代码初始化时,就已经可使用层中的文件了。

推荐使用方式#

层中通常用来存储不经常变更的静态文件或代码依赖库。在存储代码依赖库时,可以直接将可用的依赖库打包并上传至层中。

例如,在 Python 环境中,可以将依赖库的代码包文件夹直接打包并创建为层,则在函数代码中可直接通过 import 引用。

在 Nodejs 环境中,可以将项目的 node_modules 依赖库文件夹打包并创建为层,则在函数代码中可直接通过 require 引用。

通过使用层,可以将函数代码和依赖库或依赖的静态文件分离,保持函数代码较小体积。在使用命令行工具、IDE 插件或控制台编辑函数时,均可以快速上传更新。

说明事项#

  • 层中的文件将会添加到 /opt 目录中,此目录在函数执行期间可访问。
  • 如果您的函数已绑定了多个层,这些层将按顺序合并到 /opt 目录中。如果同一个文件出现在多个层中,云函数将会保留最大序号层里的文件。

层管理相关操作#

第 1 步:创建层#

  1. 登录云开发控制台,进入到环境中,点击左侧云函数菜单,再点击「层管理」,进入“层”列表页面。
  2. 在「新建层」页面,根据实际需求设置层信息。如下图所示:
    • 层名称:输入自定义层名称。
    • 描述:层的描述信息,根据实际情况填写。
    • 层代码:支持本地上传 zip 包,最大支持 50 M。确定提交方法后单击「上传」,在弹出的依赖包选择界面,选择需上传的依赖包并单击「确定」。
    • 添加运行环境:该层的兼容运行环境,最多可设置 5 个。
  3. 单击「确定」即可成功创建。

第 2 步:云函数绑定层#

  1. 选择需进行层管理的函数,进入函数管理页面。
  2. 选择「层管理」页签,并单击「绑定」。如下图所示:
  3. 在弹出的“绑定层”窗口中,选择对应「层名称」及「层版本」。如下图所示:
  4. 单击「确定」即可完成绑定。