本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 Amazon MSK 事件來源建立 Lambda 事件來源映射
若要建立事件來源映射,可以使用 Lambda 主控台、AWS Command Line Interface (CLI) 或 AWS SDK
注意
當您建立事件來源映射時,Lambda 會在包含 MSK 叢集的私有子網路內建立 Hyperplane ENI,使 Lambda 能建立安全連線。此 Hyperplane 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 中設定 Amazon MSK 叢集身分驗證方法。
-
如果希望 Lambda 在建立連線時對 MSK 叢集執行身分驗證,請開啟使用身分驗證。建議進行身分驗證。
-
如果使用身分驗證,在身分驗證方法欄位中,選擇要使用的身分驗證方法。
-
如果使用身分驗證,在 Secrets Manager 金鑰欄位中,選擇包含存取叢集所需身分驗證憑證的 Secrets Manager 金鑰。
-
-
在事件輪詢器組態欄位中,進行必要的組態設定。
-
選擇啟用觸發程序,在建立完成後立即啟用觸發程序。
-
選擇是否要為事件來源映射設定佈建模式。如需詳細資訊,請參閱Lambda 中的 Apache Kafka 事件輪詢器擴展模式。
-
如果您設定佈建模式,請輸入最小值事件輪詢器的值、最大值事件輪詢器的值,以及 PollerGroupName 的選用值,以指定相同事件來源 VPC 內多個 ESMs 的分組。
-
-
在開始位置欄位中,選擇希望 Lambda 開始從串流讀取的方式。如需詳細資訊,請參閱Lambda 中的 Apache Kafka 輪詢與串流開始位置。
-
-
在批次處理欄位中,進行必要的組態設定。如需有關批次處理的詳細資訊,請參閱批次處理行為。
-
對於 批次大小,輸入單一批次中要擷取的訊息數量上限。
-
在批次時段欄位中,輸入 Lambda 調用函式之前收集記錄所耗費的秒數上限。
-
-
在篩選欄位中,進行必要的組態設定。如需有關篩選的詳細資訊,請參閱 從 Amazon MSK 和自我管理的 Apache Kafka 事件來源篩選事件。
-
在篩選條件欄位中,新增篩選條件定義,決定是否處理事件。
-
-
在失敗處理欄位中,進行必要的組態設定。如需有關失敗處理的詳細資訊,請參閱擷取 Amazon MSK 和自我管理的 Apache Kafka 事件來源的捨棄批次。
-
在失敗時目的地欄位中,指定失敗時目的地的 ARN。
-
-
在標籤欄位中,輸入要與此事件來源映射建立關聯的標籤。
-
若要建立觸發條件,請選擇 新增 。
您也可以使用 CLI AWS 搭配 create-event-source-mappingmy-msk-function 映射至 AWSKafkaTopic 主題 (從 LATEST 訊息開始)。此命令還使用了 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 身分驗證,則需包含指定 CLIENT_CERTIFICATE_TLS_AUTH 和 Secrets Manager 金鑰 ARN 的 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 --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