為自我管理的 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. (選用) 對於 批次大小,輸入單一批次中接收的最大記錄數。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使用 SASL/SCRAM

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

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 命令將名為 my-kafka-function 的 Lambda 函數映射到名為 AWSKafkaTopic 的 Kafka 主題。

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