层操作指南
所有文档

          函数计算 CFC

          层操作指南

          层介绍

          CFC的层是一种包含库或其他依赖项的zip代码包,用户可以通过本地上传和BOS地址的方式来上传层。CFC的层会将上传的zip代码包固定解压到/opt目录。每个运行时(runtime)将查找位于/opt目录下的库。

          您可以配置函数使用CFC层,可以是您自己创建的层或者是CFC提供的公共层,这样您可以在函数中使用库,而不用将库包含在函数程序包之中。

          使用层的好处

          1. 使用层会使您的函数程序包更小,只关注核心代码,使开发变得更加轻松方便。
          2. 使用层也可以避免在制作函数zip包和依赖项过程中可能出现的错误。

          注意

          一个函数最多可以添加5个层,函数和层的总解压大小不能超过250M的限制。

          层的使用

          您可以使用自己创建的层,也可以使用公共层(公共层为CFC遴选出来的常见依赖包)。
          在函数创建时或者更新函数时,您可以在函数配置中指定最多5个层。

          在函数中使用层

          您可以在函数创建时为函数添加层,或者为已经创建好的函数添加层。要将层添加到函数之中,可以按照如下方式操作。

          1.进入CFC控制台,点击函数列表,选择函数

          1577349752082.jpg

          2.进入函数详情页面,选择层配置

          choose_layer_config.jpg

          3.点击添加层,在弹窗中选择一个层和版本,可以选择公共层(CFC遴选出的基础依赖),私有层(用户自己创建的层)

          1577350071003.jpg

          4.选择好层之后,选择层的版本,点击确定

          1577350127002.jpg

          5.点击确定后会进入层配置列表页,如果有多个层需要添加,那么层会按照指定的顺序合并,如果同一文件出现在多个层中,则使用最后应用的层中的版本,可以使用右侧的上下箭头调整顺序,最后点击确定。

          1577350174108.jpg

          6.层就已经添加完成。

          您的函数在 /opt 目录中执行期间可访问层内容。层按指定的顺序应用,这将合并任何具有相同名称的文件夹。如果同一文件出现在多个层中,则使用最后应用的层中的版本。

          层的创建者可删除您使用的层的版本。但是您的函数可以继续正常运行,就好像层版本仍然存在一样。但在更新层配置时,必须先删除对已删除版本的引用。

          管理层

          创建层,每次创建层时要输入名称,描述,zip压缩包。运行时列表是可选的,在未函数添加层时控制台会根据函数的运行时来选择层。 如果想修改层,您必须要创建新的版本,已经创建好的层是无法修改的。

          1.您可以进入CFC控制台的层列表,点击创建层来管理您创建的层

          chooset_layer_list_create_layer.jpg

          2.在弹出的对话框中填入层名称,描述,选择运行时,最多选择5个运行时,在函数中选择配置层时会根据运行时来筛选层,您可以使用zip包上传,也可以从BOS上传zip包。

          create_layer.jpg

          3.创建好之后会进入层详情页面,我们可以看到版本信息,详情等资料,如果要修改层只能点击发布新版本来创建一个新层,已经发布的层是无法修改的。

          click_publish_new_layer.jpg

          4.发布新版本和创建层基本一致

          create_new_version.jpg

          5.查看层列表,可以点击层名称来查看层的所有版本

          image.png

          6.点击删除按钮来删除层

          delete_layer.jpg

          注意 在删除一个层之后,您无法在函数中新配置该层,但是已有的函数不会受到影响。

          如何在层中包含库和依赖

          您可以在层中添加各种CFC支持的运行时的依赖项,这样可以把这些依赖项从函数代码中移除。CFC的运行时包括了/opt目录中的路径,您可以在函数中直接访问库和依赖。

          将库和依赖放入层中,您需要将库和依赖放入指定的文件夹中。

          • nodejs nodejs/node_modules,nodejs/node8/node_modules

            nodejs_layer.zip
            └──  nodejs/node_modules/bce-sdk-js
          • python python,python/lib/python3.8/site-packages

            python_layer.zip
            └──  python/bce-sdk-python
          • 全部语言 bin(PATH) ,lib(LD_LIBRARY_PATH) 您可以把bin和lib放到对应的目录

            mybin.zip
            └──  bin/mybin

          示例

          1. 使用CFC层管理依赖包-Python
          2. 使用CFC层管理依赖包-Node.js.md
          上一篇
          版本与别名管理
          下一篇
          使用CFC层管理依赖包-Node.js