本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 Amazon MSK 事件來源建立 Lambda 事件來源映射
若要建立事件來源映射,您可以使用 Lambda 主控台、 AWS Command Line Interface (CLI) 或 AWS SDK
注意
當您建立事件來源映射時,Lambda 會在包含 MSK 叢集的私有子網路中建立超平面 ENI,讓 Lambda 能夠建立安全連線。此超平面 ENI 允許 使用 MSK 叢集的子網路和安全群組組態,而不是 Lambda 函數。
下列主控台步驟會將 Amazon MSK 叢集新增為 Lambda 函數的觸發條件。在幕後,這會建立事件來源映射資源。
將 Amazon MSK 觸發條件新增至您的 Lambda 函數 (主控台)
-
開啟 Lambda 主控台中的函數頁面
。 -
選擇您要新增 Amazon MSK 觸發條件的 Lambda 函數名稱。
-
在函數概觀下,選擇新增觸發條件。
-
在觸發組態下,選擇 MSK。
-
若要指定您的 Kafka 叢集詳細資訊,請執行下列動作:
-
對於 MSK cluster (MSK 叢集),請選取您的叢集。
-
針對主題名稱,輸入要從中取用訊息的 Kafka 主題名稱。
-
針對取用者群組 ID,輸入要加入的 Kafka 取用者群組 ID,如適用。如需詳細資訊,請參閱Lambda 中的可自訂取用者群組 ID。
-
-
對於叢集身分驗證,請進行必要的組態。如需叢集身分驗證的詳細資訊,請參閱 在 Lambda 中設定叢集身分驗證方法。
-
如果您希望 Lambda 在建立連線時對 MSK 叢集執行身分驗證,請開啟使用身分驗證。建議進行身分驗證。
-
如果您使用身分驗證,請針對身分驗證方法選擇要使用的身分驗證方法。
-
如果您使用身分驗證,請針對 Secrets Manager 金鑰選擇包含存取叢集所需身分驗證憑證的 Secrets Manager 金鑰。
-
-
在事件輪詢器組態下,進行必要的組態。
-
選擇啟用觸發條件,以在建立後立即啟用觸發條件。
-
選擇是否要為事件來源映射設定佈建模式。如需詳細資訊,請參閱Lambda 中的事件輪詢器擴展模式。
-
如果您設定佈建模式,請輸入最小值事件輪詢器的值、最大值事件輪詢器的值,或兩者的值。
-
-
針對開始位置,選擇您希望 Lambda 從串流開始讀取的方式。如需詳細資訊,請參閱在 Lambda 中輪詢和串流開始位置。
-
-
在批次處理下,進行必要的組態。如需批次處理的詳細資訊,請參閱 批次處理行為。
-
對於 批次大小,輸入單一批次中要擷取的訊息數量上限。
-
針對批次視窗,輸入 Lambda 在叫用函數之前所花費收集記錄的秒數上限。
-
-
在篩選下,進行必要的組態。如需有關篩選的詳細資訊,請參閱 搭配 Amazon MSK 事件來源使用事件篩選。
-
針對篩選條件,新增篩選條件定義,以決定是否要處理事件。
-
-
在失敗處理下,進行必要的組態。如需故障處理的詳細資訊,請參閱 擷取 Amazon MSK 事件來源的捨棄批次。
-
對於故障時目的地,指定故障時目的地的 ARN。
-
-
針對標籤,輸入要與此事件來源映射建立關聯的標籤。
-
若要建立觸發條件,請選擇 新增 。
您也可以使用 CLI AWS 搭配 create-event-source-mappingLATEST
訊息開始將 Lambda 函數映射my-msk-function
至 AWSKafkaTopic
主題。此命令也會使用 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