為自我管理的 Apache Kafka 事件來源建立 Lambda 事件來源映射 - AWS Lambda

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

為自我管理的 Apache Kafka 事件來源建立 Lambda 事件來源映射

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

下列主控台步驟會將自我管理的 Apache Kafka 叢集新增為 Lambda 函式的觸發程序。在此之下,此操作會建立事件來源映射資源。

先決條件

  • 自我管理 Apache Kafka 叢集。Lambda 支援 Apache Kafka 版本 0.10.1.0 及更高版本。

  • 具有許可的執行角色,可存取自我管理的 Kafka 叢集使用 AWS 的資源。

新增自我管理 Kafka 叢集 (主控台)

按照下列步驟,將您的 Apache Kafka 叢集和 Kafka 主題新增為 Lambda 函數的觸發條件。

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

  2. 選擇 Lambda 函數的名稱。

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

  4. Trigger configuration (觸發條件) 下,執行下列動作:

    1. 選擇 Apache Kafka 觸發條件類型。

    2. 對於 Bootstrap 伺服器,輸入叢集中 Kafka 代理程式的主機和連接埠對地址,然後選擇 新增。針對叢集中的每個 Kafka 代理程式重複此操作。

    3. 對於 Topic name (主題名稱),輸入用於在叢集中存儲記錄之 Kafka 主題的名稱。

    4. 如果您設定佈建模式,請輸入最小值事件輪詢器的值、最大值事件輪詢器的值,以及 PollerGroupName 的選用值,以指定相同事件來源 VPC 內多個 ESMs 的分組。

    5. (選用) 對於 批次大小,輸入單一批次中接收的最大記錄數。

    6. 對於 Batch window (批次時段),輸入 Lambda 調用函數之前收集記錄所花費的最長秒數。

    7. (選用) 對於取用者群組 ID ,輸入要加入的 Kafka 取用者群組 ID。

    8. (選用) 在開始位置欄位中,選擇最新,可從最新記錄開始讀取串流;選擇水平修剪,可從最早的可用記錄開始;選擇在時間戳記,可指定開始讀取的時間戳記。

    9. (選用) 若為 VPC,請為您的 Kafka 叢集選擇 Amazon VPC。然後,選擇 VPC 子網路VPC 安全群組

      如果只有您的 VPC 內的使用者會存取代理程式,則必須要有此設定。

    10. (選用) 對於 身分驗證 ,選擇 新增 ,然後執行下列動作:

      1. 選擇您叢集中 Kafka 代理程式的存取或身分驗證協定。

        • 如果您的 Kafka 代理程式使用 SASL/PLAIN 身分驗證,請選擇 BASIC_AUTH

        • 如果您的代理程式使用 SASL/SCRAM 身分驗證,請選擇其中一種 SASL_SCRAM 通訊協定。

        • 如果您要設定 mTLS 身分驗證,請選擇 CLIENT_CERTIFICATE_TLS_AUTH 通訊協定。

      2. 若為 SASL/SCRAM 或 mTLS 身分驗證,請選擇包含 Kafka 叢集憑證的 Secrets Manager 機密金鑰。

    11. (選用) 若為 加密 ,如果您的 Kafka 代理程式使用私有憑證授權機構簽署的憑證,請選擇包含 Kafka 代理程式用於 TLS 加密的根憑證授權機構憑證的 Secrets Manager 機密。

      此設定適用於 SASL/SCRAM 或 SASL/PLAIN 的 TLS 加密,也適用於 mTLS 身分驗證。

    12. 若要建立處於停用狀態的觸發條件以進行測試 (建議做法),請取消勾選 啟用觸發條件 。或者,若要立即啟用觸發條件,請選取 啟用觸發條件

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

新增自我管理 Kafka 叢集 (AWS CLI)

使用下列範例 AWS CLI 命令來建立和檢視 Lambda 函數的自我管理 Apache Kafka 觸發條件。

使用 SASL/SCRAM

如果 Kafka 使用者透過網際網路存取您的 Kafka 代理程式,請指定針對 SASL/SCRAM 身分驗證建立的 Secrets Manager 機密。下列範例使用 create-event-source-mapping AWS CLI 命令,將名為 的 Lambda 函數映射my-kafka-function至名為 的 Kafka 主題AWSKafkaTopic

aws lambda create-event-source-mapping \ --topics AWSKafkaTopic \ --source-access-configuration Type=SASL_SCRAM_512_AUTH,URI=arn:aws:secretsmanager:us-east-1:111122223333:secret:MyBrokerSecretName \ --function-name arn:aws:lambda:us-east-1:111122223333:function:my-kafka-function \ --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["abc3.xyz.com:9092", "abc2.xyz.com:9092"]}}'

使用 VPC

如果只有您 VPC 內的 Kafka 使用者可存取您的 Kafka 代理程式,則必須指定您的 VPC、子網路和 VPC 安全群組。下列範例使用 create-event-source-mapping AWS CLI 命令,將名為 的 Lambda 函數映射my-kafka-function至名為 的 Kafka 主題AWSKafkaTopic

aws lambda create-event-source-mapping \ --topics AWSKafkaTopic \ --source-access-configuration '[{"Type": "VPC_SUBNET", "URI": "subnet:subnet-0011001100"}, {"Type": "VPC_SUBNET", "URI": "subnet:subnet-0022002200"}, {"Type": "VPC_SECURITY_GROUP", "URI": "security_group:sg-0123456789"}]' \ --function-name arn:aws:lambda:us-east-1:111122223333:function:my-kafka-function \ --self-managed-event-source '{"Endpoints":{"KAFKA_BOOTSTRAP_SERVERS":["abc3.xyz.com:9092", "abc2.xyz.com:9092"]}}'

使用 檢視狀態 AWS CLI

下列範例使用 get-event-source-mapping AWS CLI 命令來描述您建立的事件來源映射狀態。

aws lambda get-event-source-mapping --uuid dh38738e-992b-343a-1077-3478934hjkfd7