為 Amazon MSK 事件來源建立 Lambda 事件來源映射 - AWS Lambda

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

為 Amazon MSK 事件來源建立 Lambda 事件來源映射

若要建立事件來源映射,您可以使用 Lambda 主控台、 AWS Command Line Interface (CLI)AWS SDK

注意

當您建立事件來源映射時,Lambda 會在包含 MSK 叢集的私有子網路中建立超平面 ENI,讓 Lambda 能夠建立安全連線。此超平面 ENI 允許 使用 MSK 叢集的子網路和安全群組組態,而不是 Lambda 函數。

下列主控台步驟會將 Amazon MSK 叢集新增為 Lambda 函數的觸發條件。在幕後,這會建立事件來源映射資源。

將 Amazon MSK 觸發條件新增至您的 Lambda 函數 (主控台)
  1. 開啟 Lambda 主控台中的函數頁面

  2. 選擇您要新增 Amazon MSK 觸發條件的 Lambda 函數名稱。

  3. 函數概觀下,選擇新增觸發條件

  4. 觸發組態下,選擇 MSK

  5. 若要指定您的 Kafka 叢集詳細資訊,請執行下列動作:

    1. 對於 MSK cluster (MSK 叢集),請選取您的叢集。

    2. 針對主題名稱,輸入要從中取用訊息的 Kafka 主題名稱。

    3. 針對取用者群組 ID,輸入要加入的 Kafka 取用者群組 ID,如適用。如需詳細資訊,請參閱Lambda 中的可自訂取用者群組 ID

  6. 對於叢集身分驗證,請進行必要的組態。如需叢集身分驗證的詳細資訊,請參閱 在 Lambda 中設定叢集身分驗證方法

    • 如果您希望 Lambda 在建立連線時對 MSK 叢集執行身分驗證,請開啟使用身分驗證。建議進行身分驗證。

    • 如果您使用身分驗證,請針對身分驗證方法選擇要使用的身分驗證方法。

    • 如果您使用身分驗證,請針對 Secrets Manager 金鑰選擇包含存取叢集所需身分驗證憑證的 Secrets Manager 金鑰。

  7. 事件輪詢器組態下,進行必要的組態。

    • 選擇啟用觸發條件,以在建立後立即啟用觸發條件。

    • 選擇是否要為事件來源映射設定佈建模式。如需詳細資訊,請參閱Lambda 中的事件輪詢器擴展模式

      • 如果您設定佈建模式,請輸入最小值事件輪詢器的值、最大值事件輪詢器的值,或兩者的值。

    • 針對開始位置,選擇您希望 Lambda 從串流開始讀取的方式。如需詳細資訊,請參閱在 Lambda 中輪詢和串流開始位置

  8. 批次處理下,進行必要的組態。如需批次處理的詳細資訊,請參閱 批次處理行為

    1. 對於 批次大小,輸入單一批次中要擷取的訊息數量上限。

    2. 針對批次視窗,輸入 Lambda 在叫用函數之前所花費收集記錄的秒數上限。

  9. 篩選下,進行必要的組態。如需有關篩選的詳細資訊,請參閱 搭配 Amazon MSK 事件來源使用事件篩選

    • 針對篩選條件,新增篩選條件定義,以決定是否要處理事件。

  10. 失敗處理下,進行必要的組態。如需故障處理的詳細資訊,請參閱 擷取 Amazon MSK 事件來源的捨棄批次

    • 對於故障時目的地,指定故障時目的地的 ARN。

  11. 針對標籤,輸入要與此事件來源映射建立關聯的標籤。

  12. 若要建立觸發條件,請選擇 新增

您也可以使用 CLI AWS 搭配 create-event-source-mapping 命令來建立事件來源映射。下列範例會建立事件來源映射,從LATEST訊息開始將 Lambda 函數映射my-msk-functionAWSKafkaTopic主題。此命令也會使用 SourceAccessConfiguration 物件,指示 Lambda 在連線至叢集時使用 SASL/SCRAM 身分驗證。

aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function --source-access-configurations '[{"Type": "SASL_SCRAM_512_AUTH","URI": "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret"}]'

如果叢集使用 mTLS 身分驗證,請包含指定 的 SourceAccessConfiguration 物件CLIENT_CERTIFICATE_TLS_AUTH和 Secrets Manager 金鑰 ARN。這會顯示在下列命令中:

aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function --source-access-configurations '[{"Type": "CLIENT_CERTIFICATE_TLS_AUTH","URI": "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret"}]'

當叢集使用 IAM 身分驗證時,您不需要 SourceAccessConfiguration 物件。這會顯示在下列命令中:

aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function