配置自定义层

本文介绍如何在函数中配置自定义层。

通过控制台配置

前提条件

操作步骤

为函数配置层时,如果层有多个版本,将按照具体的层版本与函数进行绑定。

  1. 登录函数计算控制台,在左侧导航栏,单击函数

  2. 在顶部菜单栏,选择地域,然后在函数页面,单击目标函数。

  3. 在函数详情页面,选择配置页签,在左侧导航栏,选择,单击编辑,然后在编辑函数层面板选择+添加层 > 添加自定义层,选择自定义层层版本,最后单击部署

    • 一个函数最多支持配置5个层,包括自定义层和官方公共层。

    • 当函数配置多个层时,这些层的内容将被合并至/opt目录,多个层按照层配置的逆序合并。如果多个层中有同名文件,先配置的层会覆盖后配置的层中的同名文件。

通过Serverless Devs配置

前提条件

操作步骤

  1. 执行以下命令查找指定地域下的自定义层。

    s cli fc layer list --custom --region cn-hangzhou

    执行成功后,返回自定义层列表,如下所示。从中获取目标层的arn并记录。

    -
      layerName:         java11_fc_auto_created
      arn:             acs:fc:cn-hangzhou:1034354682****:layers/numpy/versions/1
      version:           1
      acl:               0
      description:
      compatibleRuntime:
        - custom

    示例解析如下:

    • layerName:层名称。

    • version:层版本。

    • arn:层的ARN。

    • acl:层的权限。取值0代表私有,取值1代表公有。官方公共层默认为公有,自定义层可以设置为私有或者公有。

    • description:层的描述信息。

    • compatibleRuntime:兼容的运行时列表。

  2. 在目标目录下创建s.yaml文件,填写获取的层arn信息。

    示例如下:

    edition: 3.0.0
    name: hello-world-app
    access: "default"
    
    vars: # 全局变量
      region: "cn-hangzhou"
    
    resources:
      hello_world:
        component: fc3 # 组件名称
        # actions:       # 自定义执行逻辑,关于actions 的使用,可以参考:https://docs.serverless-devs.com/serverless-devs/yaml#%E8%A1%8C%E4%B8%BA%E6%8F%8F%E8%BF%B0actions
        props:
          region: ${vars.region}              # 关于变量的使用方法,可以参考:https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC
          functionName: "emoji"
          description: 'this is a layer demo'
          runtime: "python3.9"
          code: ./code
          handler: index.handler
          memorySize: 512
          timeout: 60
          internetAccess: true
          layers:    # 函数绑定层,取值是层的ARN
            - acs:fc:cn-hangzhou:1034354682****:layers/numpy/versions/1
  3. 在目标目录下创建code层级,然后在code下准备函数代码。

  4. 在目标目录下执行以下命令部署函数并为其配置层。

    s deploy

更多信息

您还可以通过API或SDK来管理层和配置层。您可以在以下API中配置层:

您可以通过OpenAPI Explorer调用API和SDK。