使用 Lambda 處理 DynamoDB 記錄 - AWS Lambda

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

使用 Lambda 處理 DynamoDB 記錄

建立事件來源映射,指示 Lambda 從您的串流傳送記錄至 Lambda 函數。您可以建立多個事件來源映射,來使用多個 Lambda 函數處理相同資料,或使用單一函數處理來自多個串流的項目。

若要將您的函數設定為從 DynamoDB Streams 讀取,請將AWSLambdaDynamoDBExecutionRole AWS 受管理的原則附加至您的執行角色,然後建立 DynamoDB 觸發器。

若要新增權限並建立觸發器
  1. 開啟 Lambda 主控台中的 函數頁面

  2. 選擇函數的名稱。

  3. 依序選擇 Configuration (組態) 索引標籤和 Permissions (許可)。

  4. 在 [角色名稱] 下,選擇指向您的執行角色的連結。此連結會在IAM主控台中開啟角色。

    連結至執行角色
  5. 選擇新增許可,然後選擇連接政策

    在IAM主控台中附加原則
  6. 在搜尋欄位中輸入 AWSLambdaDynamoDBExecutionRole。將此原則新增至您的執行角色。這是一項 AWS 受管政策,其中包含您的函數需要從 DynamoDB 串流讀取的權限。如需有關此原則的詳細資訊,請參閱AWSLambdaDynamoDBExecutionRoleAWS 管理的原則參考中的。

  7. 返回 Lambda 主控台中的函數。在 函式概觀 下,選擇 新增觸發條件

    Lambda 主控台的函數概觀區段
  8. 選擇觸發條件類型。

  9. 設定需要的選項,然後選擇 新增

Lambda 針對事件來源支援下列選項:

事件來源選項
  • DynamoDB 資料表 - 從中讀取記錄的 DynamoDB 資料表。

  • 批次大小 – 每個批次中要傳送至函數的記錄數量,最高為 10,000。Lambda 會將批次中所有記錄以單一呼叫傳送至函數,前提是事件的總大小不超過同步調用的酬載限制 (6 MB)。

  • 批次間隔 - 指定調用函數前收集記錄的最長時間 (秒)。

  • 開始位置 - 只處理新記錄,或所有現有的記錄。

    • 最新 - 處理已新增到串流的記錄。

    • 水平修剪 - 處理所有在串流中的記錄。

    處理任何現有的記錄後,該函式已跟上進度並持續處理新的記錄。

  • 失敗時的目的地 — 無法處理之記錄的標準SQS佇列或標準SNS主題。當 Lambda 捨棄太舊或已耗盡所有重試的一批記錄時,Lambda 會將該批次的詳細資料傳送至此佇列或主題。

  • 重試嘗試 - 當函數傳回錯誤時,Lambda 重試的次數上限。這不適用於服務錯誤或調節,其中批次並沒有到達函數。

  • 記錄最大存留期 - Lambda 傳送至函數之記錄的最大存留期。

  • 在錯誤時分割批次 - 當函數傳回錯誤時,先將批次分割為兩個,再進行重試。您原始的批次大小設定仍會維持不變。

  • 每個碎片的並行批次 - 同時處理來自同一個碎片的多個批次。

  • 已啟用 - 設定為 true 可啟用事件來源映射。設定為 false 以停止處理記錄。Lambda 會追蹤上次處理的進度,並在重新啟用映射時從該時間點恢復處理。

注意

作為 DynamoDB 觸發器的一部分,Lambda GetRecords API 呼叫的呼叫不需支付費用。

若要稍後管理事件來源的組態,請選擇設計工具中的觸發。