如何使用 AWS Lambda 擷取 Amazon DynamoDB 全域表串流事件?

上次更新日期:2022 年 8 月 18 日

我想要建立 AWS Lambda 觸發程式,以處理來自 Amazon DynamoDB 全域表的串流。

解決方案

DynamoDB 全域表是單一帳戶中跨區域複本的集合。全域表使用 DynamoDB Streams 來跨不同區域複寫資料。當您為全域表建立複本時,即會依預設建立串流。使用 DynamoDB Streams 在一秒內將對複本所做的任何變更複寫紙所有其他複本。

注意:在任何一個區域中的任何全域表複本上設定單一使用者,即足以擷取所有項目的修改記錄。

您可以執行下列動作,以設定 AWS Lambda 觸發程式,進而處理來自全域表複本的串流:

  1. 請確認 AWSLambdaDynamoDBExecutionRole 已經具有必要的 AWS Identity and Access Management (IAM) 許可。
    注意:依預設,AWSLambdaDynamoDBExecutionRole IAM 政策沒有權限讓 Lambda 與其他服務 (例如 Amazon Simple Notification Service (Amazon SNS)) 通訊。這表示您必須根據 Lambda 目標新增必要的其他許可。
  2. 使用藍圖 dynamodb-process-stream 建立 Lambda 函數。您可以根據您的需求來修改 Lambda 程式碼,以處理串流資料。
  3. 成功建立 Lambda 函數後,請開啟 DynamoDB 主控台,然後選取全域表複本。在 Exports and streams (匯出和串流) 標籤中,選擇 Create trigger (建立觸發程式)。然後,選取您在上一步中建立的 Lambda 函數。請確認選取 Enable trigger (啟用觸發程式),以便在建立觸發程式之後啟動觸發程式。

Lambda 函數現在已設定為全域表複本的觸發程式。串流會擷取複本的任何變更,並叫用觸發程式。


此文章是否有幫助?


您是否需要帳單或技術支援?