全部產品
Search
文件中心

Function Compute:配置自訂層

更新時間:Jul 06, 2024

本文介紹如何在函數中配置自訂層。

通過控制台配置

前提條件

操作步驟

為函數配置層時,如果層有多個版本,將按照具體的層版本與函數進行綁定。

  1. 登入Function Compute控制台,在左側導覽列,單擊函數

  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。