层为您提供了发布和部署自定义内容的能力,包括公共依赖库、运行时环境和函数扩展等。为了减少在部署或更新函数时的代码包体积,您可以将函数依赖的公共库提取到层中,或者使用函数计算官方的公共层。本文将介绍层的功能原理、各运行时中使用层的说明,以及如何构建层的ZIP包和创建、删除自定义层。
功能原理
- 在构建层时,需将所有内容打包成ZIP文件。函数计算的运行时会将层的内容解压并部署到/opt目录下。
- 当函数配置了多个层时,这些层的内容会按照层配置的逆序合并到/opt目录。如果某个文件与其他层中的文件同名,先配置的层中的该文件会覆盖后配置层中的同名文件。
说明:为某函数配置了第1层和第2层,函数实例启动时,会先加载第1层,再加载第2层,并将它们解压到/opt目录。在/opt目录中,第2层的内容在前,第1层的内容在后。如果第1层和第2层中存在同名文件,那么第2层中的文件会覆盖第1层中的文件。
- 如果层中的代码依赖二进制库或可执行文件,需要使用Linux系统进行编译构建层,推荐使用 Debian 10。
- 函数计算的运行时基于 x86_64 架构,如果层中的依赖库对指令集有依赖,需使用 x86_64 架构的机器,或通过交叉编译方式确保依赖库与函数计算的运行时兼容。
创建自定义层
创建层时,需要将所有内容打包到ZIP文件中。函数计算运行时会将层的内容解压并部署在函数的 /opt 目录下。
前提条件
已完成函数的创建,具体操作请参见创建函数。
操作步骤
- 登录函数计算控制台,在左侧导航栏,选择高级功能 > 层管理。
- 在顶部菜单栏,选择地域,然后在层管理页面,单击创建层。
- 在创建层页面,设置相关参数,然后单击创建。
参数 | 描述 |
---|---|
名称 | 设置层的名称,支持自定义。 |
描述 | 设置层的描述信息,便于区分各层。 |
兼容运行时 | 选择与该层兼容的运行时环境。 |
层上传方式 | 通过 ZIP 包上传层选择或直接上传已构建的层的ZIP文件。上传的ZIP文件不能超过 500 MB。 |
层创建后将自动生成层的版本,版本号从1开始递增。
- 创建新版本。
说明:已创建的层或相关层版本暂不支持修改,如果您需要修改层的相关配置,可以创建新的层或创建新版本。需要注意的是,如果引用的层版本已删除,在更新层配置时,必须先删除该引用。
- 在层管理页面,单击目标层名称。
- 在版本管理区域,单击创建版本。
- 在创建新的版本页面,选择运行环境并上传新的层代码,然后单击创建。
删除层与层版本
您可以根据需要删除不必要的层或层版本。虽然已删除的层无法再查看或被新的函数配置引用,但已配置引用该层的函数执行将不受影响。
-
登录函数计算控制台。
-
在顶部菜单栏中,选择您的地域。
-
在左侧导航栏,依次选择高级功能 > 层管理。
-
在层管理页面,按照需要选择删除层或层版本。
- 删除层:在目标层的操作列中,点击“删除”。在弹出的对话框中,勾选“确认删除层”复选框,然后点击“删除”。
- 删除层版本:点击目标层的名称,进入层详情页面。在版本管理区域,找到目标层版本,在其操作列中点击“删除”。在弹出的确认对话框中,点击“删除”。