全部產品
Search
文件中心

Server Load Balancer:ALB添加Function ComputeFC作為後端服務

更新時間:Nov 19, 2024

如果您使用阿里雲Function Compute(Function Compute,簡稱FC),並需要將Function Compute作為ALB後端服務來處理請求,您可以為ALB執行個體添加Function Compute類型的伺服器組。通過ALB和Function Compute的配置,實現ALB轉寄請求至Function Compute並調用函數,函數在運行完成後,Function Compute將運行結果作為響應返回給請求方。

重要

當前ALBFunction Compute類型伺服器組僅支援Function Compute2.0版本,暫不支援Function Compute3.0版本。

本文所有涉及Function Compute的描述,均指代Function Compute2.0版本。

背景資訊

阿里雲Function Compute是事件驅動的全託管計算服務。通過Function Compute,您無需管理伺服器等基礎設施,只需編寫代碼並上傳。Function Compute會為您準備好計算資源,以彈性、可靠的方式運行您的代碼,並提供日誌查詢、效能監控、警示等功能。Function Compute是Serverless架構的一種形態,面向函數編程,基於事件驅動提供阿里雲雲端服務之間端到端的解決方案。藉助Function Compute,您可以快速構建任何類型的應用和服務,並且只需為任務實際消耗的資源付費。

建立完函數後,您可以通過ALB伺服器組和監聽的配置,將函數作為ALB的後端伺服器。當接收到訪問請求時,ALB會將請求內容轉寄給Function Compute並觸發函數調用,函數運行完成後,Function Compute將運行結果作為響應返回給請求方。

說明

使用Function Compute服務前需要先開通Function Compute服務。

使用限制

  • ALB執行個體和函數屬於同一個地區。

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

    • 僅支援建立處理HTTP請求的函數。

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

  • ALB使用Function Compute時的使用限制:一個ALBFunction Compute類型伺服器組僅支援添加一個函數作為後端伺服器。

步驟一:建立Function Compute服務

  1. 登入Function Compute控制台

    重要

    如果您的控制台當前處於Function Compute3.0版本頁面,您可單擊右上方返回Function Compute2.0,返回Function Compute2.0頁面進行操作。

  2. 在左側導覽列,單擊服務及函數

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

  4. 服務列表頁面,單擊建立服務

  5. 建立服務面板,部分配置可參考以下資訊,其餘參數可保持預設,然後單擊確定

    參數

    說明

    名稱

    輸入Function Compute服務名稱。

    長度為1~128個字元,只能包含字母、數字、底線(_)和中劃線(-),不能以數字、中劃線(-)開頭。

    描述

    輸入Function Compute服務描述。

    日誌功能

    是否啟用阿里雲Log Service。本文選擇啟用

    • 啟用:啟用後,Function Compute會自動為您在Log Service建立對應的Project(記錄項目)和Logstore(日誌倉庫),並自動把函數日誌投遞到相應的Logstore。

      此時,Function Compute為您的服務授予基於最小許可權原則建立的AliyunFCDefaultRole,以訪問Log Service。關於服務角色的更多資訊,請參見授予Function Compute訪問其他雲端服務的許可權

    • 禁用:函數的執行日誌將無法通過Log Service儲存和查詢。

    說明

    請確保您已開通Log Service。否則,無法啟用日誌功能。

步驟二:建立函數

  1. 服務列表頁面,在目標服務操作列單擊函數管理

  2. 函數管理頁面,單擊建立函數

  3. 建立函數頁面,按需選擇建立函數的方式。

    本文選擇使用內建運行時建立

  4. 基本設定函數代碼觸發器配置地區,配置以下參數資訊,然後單擊建立

    此處僅列出和本文強相關的配置項,其餘未列出的參數保持預設值。

    參數

    操作

    基本設定

    函數名稱

    填寫自訂的函數名稱。

    請求處理常式類型

    選擇請求處理常式類型。本文選擇處理 HTTP 要求

    請求處理常式類型:用於處理HTTP請求或Websocket請求的函數。

    說明

    負載平衡ALB僅支援通過HTTP請求觸發函數。

    函數代碼

    運行環境

    選擇運行環境。本文選擇Node.js 14

    關於Function Compute支援的運行環境,請參見管理函數

    代碼上傳方式

    選擇上傳函數代碼到Function Compute的方式。

    本文選擇使用範例程式碼

    觸發器配置

    觸發器類型

    顯示當前選擇的觸發器類型:HTTP觸發器

    觸發器是觸發函數執行的方式。

    名稱

    輸入觸發器的名稱。

    要求方法

    選擇觸發該HTTP觸發器的方法。本文選擇GETPOST

    認證方式

    本文選擇簽名認證。更多資訊,請參見簽名認證

  5. 函數代碼頁簽,在代碼編輯器中修改代碼。

    代碼修改樣本如下。

    varparams={
    	path : req.path,
     	queries : req.queries,
    	headers : req.headers,
    	method : req.method,
    	requestURI : req.url,
    	clientIP : req.clientIP,
    	log : ("Hello World.This is FC!"), 
    }
  6. 函數代碼頁簽,在左上方單擊部署代碼,然後單擊測試函數

    執行完成後,您可以在返回結果地區查看函數運行結果。更多操作,請參見快速建立函數

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

  1. 登入應用型負載平衡ALB控制台
  2. 在頂部功能表列選擇所屬地區。本文選擇華東1(杭州)

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

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

    參數

    說明

    伺服器群組類型

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

    伺服器組名稱

    輸入伺服器組名稱。

    配置健全狀態檢查

    健全狀態檢查

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

  5. 伺服器組頁面,找到目標伺服器組,然後在操作列單擊編輯後端伺服器

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

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

    • 通過選擇資源

      參數

      描述

      配置方式

      在下拉式清單中選擇通過選擇資源

      服務

      選擇步驟一中建立的Function Compute服務。

      版本

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

      函數

      在下拉式清單中選擇您已建立的函數。如果沒有可用的函數,請單擊建立新函數,然後按照頁面提示建立函數。具體操作,請參見管理函數

      描述

      輸入描述資訊。

    • 通過ARN配置

      參數

      描述

      配置方式

      在下拉式清單中選擇通過ARN配置

      ARN

      輸入目標函數的ARN。

      您可以在Function Compute控制台的函數詳情頁面,複製函數ARN。具體操作, 請參見擷取函數ARN

      描述

      輸入描述資訊。

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

  1. 登入應用型負載平衡ALB控制台
  2. 在頂部功能表列選擇所屬地區。本文選擇華東1(杭州)

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

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

    此處僅列出和本文強相關的配置項。關於其餘參數的配置,請參見建立應用型負載平衡

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

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

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

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

    監聽配置

    說明

    選擇監聽協議

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

    監聽連接埠

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

    監聽名稱

    自訂監聽的名稱。

    進階配置

    本文使用預設配置。

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

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

步驟五:設定網域名稱解析

實際業務情境中,建議您使用自有網域名稱,通過CNAME解析的方式將自有網域名稱指向ALB執行個體網域名稱。

  1. 在左側導覽列,選擇應用型負載平衡 ALB > 執行個體

  2. 執行個體頁面,複製已建立的ALB執行個體的DNS名稱。

  3. 執行以下步驟添加CNAME解析記錄。

    說明

    對於非阿里雲註冊網域名稱,需先將網域名稱添加到雲解析控制台,才可以進行網域名稱解析設定。具體操作,請參見網域名稱管理。如果您是阿里雲註冊的網域名稱,請直接執行以下步驟。

    1. 登入網域名稱解析控制台

    2. 權威網域名稱解析頁面,找到目標網域名稱,在操作列單擊解析設定

    3. 解析設定頁面,單擊添加記錄

    4. 添加記錄面板,配置以下資訊完成CNAME解析配置,然後單擊確定

      配置

      說明

      記錄類型

      在下拉式清單中選擇CNAME

      主機記錄

      您的網域名稱的首碼。本文輸入@

      說明

      建立網域名稱為根網域名稱時,主機記錄為@

      解析請求來源

      選擇預設。

      記錄值

      輸入欄位名對應的CNAME地址,即您複製的ALB執行個體的DNS名稱。

      TTL

      全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間,本文使用預設值。

步驟六:連通性測試

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

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

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

    image

  2. 執行curl -H "Date頭域" <網域名稱>命令。

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

相關文檔

Function Compute2.0相關:

ALB相關: