函数计算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