全部產品
Search
文件中心

Function Compute:ALB觸發器

更新時間:Dec 04, 2025

Function Compute支援應用型負載平衡 ALB(Application Load Balancer)作為事件來源,即支援將Function Compute設定為ALB的後端服務。ALB會將請求轉寄到Function Compute中的函數,並且同步返回函數調用結果。本文介紹如何配置ALB觸發函數執行。

前提條件

使用限制

  • ALB執行個體和Function Compute服務屬於同一個地區。

  • Function Compute作為ALB後端伺服器的使用限制:

    • 僅支援建立通過HTTP請求觸發的函數。

    • Function Compute要求用戶端在訪問函數時,HTTP要求標頭中包含Date頭域。Date頭域表示訊息發送的時間。

  • ALB使用Function Compute的使用限制:

    • ALB中伺服器群組類型選擇Function Compute類型,且後端伺服器組和監聽僅支援HTTP協議。

    • ALB僅支援添加一個Function Compute作為後端伺服器。

步驟一:編寫函數代碼並測試

  1. 登入Function Compute控制台,在左側導覽列,單擊服務及函數
  2. 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務。
  3. 函數管理頁面,單擊目標函數名稱。
  4. 在函數詳情頁面,單擊函數代碼頁簽,在代碼編輯器中編寫代碼,然後單擊部署代碼

    代碼修改樣本如下。

    var getRawBody = require('raw-body');
    var getFormBody = require('body/form');
    var body = require('body');
    
    
    /*
    To enable the initializer feature
    please implement the initializer function as below:
    exports.initializer = (context, callback) => {
      console.log('initializing');
      callback(null, '');
    };
    */
    
    exports.handler = (req, resp, context) => {
        console.log('hello world');
    
        var params = {
            path: req.path,
            queries: req.queries,
            headers: req.headers,
            method : req.method,
            requestURI : req.url,
            clientIP : req.clientIP,
            log : ("Hello World.This is FC!"),
        }
    
        getRawBody(req, function(err, body) {
            for (var key in req.queries) {
              var value = req.queries[key];
              resp.setHeader(key, value);
            }
            resp.setHeader("Content-Type", "text/plain");
            params.body = body.toString();
            resp.send(JSON.stringify(params, null, '    '));
        });
    
        /*
        getFormBody(req, function(err, formBody) {
            for (var key in req.queries) {
              var value = req.queries[key];
              resp.setHeader(key, value);
            }
            params.body = formBody;
            console.log(formBody);
            resp.send(JSON.stringify(params));
        });
        */
    }
  5. 單擊函數代碼頁簽的測試函數

    執行完成後,您可以在函數代碼頁簽的上方查看執行結果。

步驟二:建立Function Compute類型的伺服器組

  1. 登入應用型負載平衡ALB控制台

  2. 應用型負載平衡ALB控制台的左側導覽列選擇伺服器組,在頂部功能表列選擇目標地區,單擊建立伺服器組

  3. 在左側導覽列,選擇應用型負載平衡ALB > 伺服器組

  4. 伺服器組頁面,單擊建立伺服器組,完成以下配置,然後單擊建立

    Function Compute類型伺服器組

    配置項

    說明

    伺服器群組類型

    選擇伺服器群組類型。本文選擇Function Compute類型

    伺服器組名稱

    自訂。

    選擇後端協議

    選擇一種後端協議。本文選擇HTTP

    選擇資源群組

    選擇歸屬的資源群組。

    配置健全狀態檢查

    開啟健全狀態檢查

    開啟或關閉健全狀態檢查。本文保持預設配置,即關閉健全狀態檢查。

    進階配置

    如果需要開啟健全狀態檢查,請按需修改進階配置中的資訊。更多資訊,請參見建立和管理伺服器組

  5. 伺服器組建立成功對話方塊單擊添加後端伺服器

  6. 後端伺服器頁簽,單擊設定Function Compute

  7. 添加後端伺服器面板,選擇以下任意一種方式完成配置,然後單擊確定

    • 通過選擇資源

      配置項

      說明

      配置方式

      選擇通過選擇資源

      服務

      選擇目標函數所屬的服務。

      版本

      選擇LATEST。新建立的服務,預設只有一個LATEST版本。

      函數

      選擇目標函數。

      備忘

      自訂。

    • 通過ARN配置

      配置項

      說明

      配置方式

      選擇通過ARN配置

      ARN

      輸入目標函數的ARN。關於如何擷取函數ARN,請參見擷取函數ARN

      備忘

      自訂。

    添加後端伺服器面板會顯示添加成功!,單擊關閉,您可以在後端伺服器頁簽,查看已配置的後端伺服器。

步驟三:建立ALB執行個體並配置監聽

  1. 登入應用型負載平衡ALB控制台

  2. 在頂部功能表列選擇所屬地區。本文選擇華東1(杭州)

  3. 執行個體頁面,單擊建立應用型負載平衡

  4. 應用型負載平衡(隨用隨付)購買頁面,完成參數配置。

    此處僅列出和本文強相關的配置項。關於其餘參數的配置,請參見建立和管理ALB執行個體

    • 地區:本文選擇華東1(杭州)

    • 執行個體網路類型:本文選擇公網

  5. 執行個體頁面,找到已建立的ALB執行個體,在目標執行個體操作列下單擊建立監聽,然後開啟監聽設定精靈。

  6. 配置監聽設定精靈,完成以下配置,然後單擊下一步

    配置項

    說明

    選擇負載平衡協議

    選擇監聽的協議類型。 本文選擇HTTP

    監聽連接埠

    輸入用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠,連接埠範圍為[1,65535]。本文輸入80

    監聽名稱

    自訂。

    進階配置

    本文使用預設配置。

  7. 選擇伺服器組設定精靈的選擇伺服器組下拉式清單,選擇Function Compute類型,並選擇步驟二:建立Function Compute類型的伺服器組建立的後端伺服器組,然後單擊下一步

  8. 組態稽核設定精靈,確認配置資訊,單擊提交

步驟四:連通性測試

完成上述操作後,Function Compute和ALB已經建立了串連。您可以通過以下操作,測試Function Compute和ALB的連通性。

  1. 開啟命令列視窗,執行curl - v命令擷取Date頭域。

    Function Compute要求HTTP訪問要求標頭中包含Date頭域。

    curl -v <ALB執行個體網域名稱>

    擷取時間

  2. 執行curl - H命令,嘗試訪問ALB執行個體的網域名稱。

    curl -H "Date頭域" <ALB執行個體網域名稱>

    如下圖所示,收到如下所示的回複報文,則表示ALB可以將請求轉寄至Function Compute並調用函數。ALB支援Function Compute驗證結果

更多資訊

除了Function Compute控制台,您還可通過以下方式配置觸發器:

  • 通過Serverless Devs工具配置觸發器。更多操作,請參見Serverless Devs

  • 通過SDK配置觸發器。更多操作,請參見SDK列表

如需對建立的觸發器進行修改或刪除,請參見觸發器管理