Lambda 中的事件輪詢器擴展模式 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Lambda 中的事件輪詢器擴展模式

您可以選擇兩種 Kafka 事件來源映射的事件輪詢器擴展模式:

隨需模式 (預設)

當您最初建立 Amazon MSK 事件來源時,Lambda 會分配預設數量的事件輪詢器來處理 Kafka 主題中的所有分割區。Lambda 會根據訊息負載自動擴展或縮減事件輪詢器的數量。

每 1 分鐘,Lambda 會評估主題中所有分割區的偏移延遲。如果偏移延遲太高,則表示分割區接收訊息的速度比 Lambda 處理訊息的速度更快。如有必要,Lambda 會新增或移除主題的事件輪詢器。此新增或移除事件輪詢器的自動擴展程序會在評估後三分鐘內發生。

如果您的目標 Lambda 函數遭限流,則 Lambda 會減少事件輪詢器的數量。此動作可透過減少事件輪詢器可擷取和傳送至函數的訊息數量,減少函數的工作負載。

佈建模式

對於您需要微調事件來源映射輸送量的工作負載,可以使用佈建模式。在佈建模式中,可以定義佈建的事件輪詢器數量的下限和上限。這些佈建的事件輪詢器專用於您的事件來源映射,並且可以透過回應性自動擴展處理意外的訊息尖峰。我們建議您針對效能需求嚴格的 Kafka 工作負載使用佈建模式。

在 Lambda 中,事件輪詢器是運算單元,能夠處理高達 5 MBps 的輸送量。做為參考,假設您的事件來源產生的平均承載為 1 MB,平均函數持續時間為 1 秒。如果承載未進行任何轉換 (例如篩選),則單一輪詢器可以支援 5 MBps 輸送量和 5 個並行 Lambda 調用。使用佈建模式會產生額外費用。如需定價預估,請參閱 AWS Lambda 定價

注意

使用佈建模式時,您不需要建立 AWS PrivateLink VPC 端點或授予相關聯的許可做為網路組態的一部分。

在佈建模式中,事件輪詢器數目下限 (MinimumPollers) 的接受值範圍介於 1 到 200 之間,包括 1 和 200 在內。事件輪詢器數目上限 (MaximumPollers) 的接受值範圍介於 1 到 2,000 之間,包括 1 和 2,000 在內。MaximumPollers 必須大於或等於 MinimumPollers。此外,為了在分割區內維持有序處理,Lambda 將 MaximumPollers 限制為不超過主題中的分割區數量。

如需選擇適當的事件輪詢器數量下限值和上限值的詳細資訊,請參閱使用佈建模式時的最佳實務和考量

您可以使用主控台或 Lambda API,為 Amazon MSK 事件來源映射設定佈建模式。

若要設定現有 Amazon MSK 事件來源映射的佈建模式 (主控台)
  1. 開啟 Lambda 主控台中的函數頁面

  2. 選擇具有您要設定佈建模式之 Amazon MSK 事件來源映射的函數。

  3. 選擇組態,然後選擇觸發條件

  4. 選擇您要設定佈建模式的 Amazon MSK 事件來源映射,然後選擇編輯

  5. 事件來源映射組態下,選擇設定佈建模式

    • 針對事件輪詢器下限,輸入介於 1 到 200 之間的值。如果您沒有指定值,則 Lambda 會選擇預設值 1。

    • 針對事件輪詢器上限,輸入介於 1 到 2,000 之間的值。此值必須大於或等於事件輪詢器下限值。如果您沒有指定值,則 Lambda 會選擇預設值 200。

  6. 選擇儲存

您可以使用 EventSourceMappingConfiguration 中的 ProvisionedPollerConfig 物件,以程式設計方式設定佈建模式。例如,下列 UpdateEventSourceMapping CLI 命令會將 MinimumPollers 值設定為 5,將 MaximumPollers 值設定為 100。

aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{"MinimumPollers": 5, "MaximumPollers": 100}'

設定佈建模式後,可以透過監控 ProvisionedPollers 指標來觀察工作負載的事件輪詢器使用情況。如需詳細資訊,請參閱事件來源映射指標

若要停用佈建模式並返回預設 (隨需) 模式,您可以使用下列 UpdateEventSourceMapping CLI 命令:

aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{}'

使用佈建模式時的最佳實務和考量

事件來源映射的事件輪詢器上限和下限的最佳組態取決於應用程式的效能需求。我們建議您從預設的事件輪詢器下限開始,以基準化效能設定檔。根據觀察到的訊息處理模式和所需的效能設定檔來調整您的組態。

對於具有尖峰流量和嚴格效能需求的工作負載,請增加事件輪詢器下限,以處理訊息的突然激增。若要判斷所需的事件輪詢器下限,請考慮工作負載的每秒訊息數和平均承載大小,並使用單一事件輪詢器的輸送容量 (至多 5 MBps) 做為參考。

為了在分割區內維持有序處理,Lambda 將事件輪詢器的上限限制為主題中的分割區數量。此外,事件來源映射可以擴展到的事件輪詢器上限取決於函數的並行設定。

啟用佈建模式時,請更新您的網路設定以移除 AWS PrivateLink VPC 端點和相關聯的許可。