本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Lambda 處理 DynamoDB 記錄
建立事件來源映射,指示 Lambda 從您的串流傳送記錄至 Lambda 函數。您可以建立多個事件來源映射,來使用多個 Lambda 函數處理相同資料,或使用單一函數處理來自多個串流的項目。
若要將您的函數設定為從 DynamoDB Streams 讀取,請將AWSLambdaDynamoDBExecutionRole AWS 受管理的原則附加至您的執行角色,然後建立 DynamoDB 觸發器。
若要新增權限並建立觸發器
開啟 Lambda 主控台中的 函數頁面
。 -
選擇函數的名稱。
-
依序選擇 Configuration (組態) 索引標籤和 Permissions (許可)。
-
在 [角色名稱] 下,選擇指向您的執行角色的連結。此連結會在IAM主控台中開啟角色。
-
選擇新增許可,然後選擇連接政策。
-
在搜尋欄位中輸入
AWSLambdaDynamoDBExecutionRole
。將此原則新增至您的執行角色。這是一項 AWS 受管政策,其中包含您的函數需要從 DynamoDB 串流讀取的權限。如需有關此原則的詳細資訊,請參閱AWSLambdaDynamoDBExecutionRole受AWS 管理的原則參考中的。 -
返回 Lambda 主控台中的函數。在 函式概觀 下,選擇 新增觸發條件 。
-
選擇觸發條件類型。
-
設定需要的選項,然後選擇 新增 。
Lambda 針對事件來源支援下列選項:
事件來源選項
-
DynamoDB 資料表 - 從中讀取記錄的 DynamoDB 資料表。
-
批次大小 – 每個批次中要傳送至函數的記錄數量,最高為 10,000。Lambda 會將批次中所有記錄以單一呼叫傳送至函數,前提是事件的總大小不超過同步調用的酬載限制 (6 MB)。
批次間隔 - 指定調用函數前收集記錄的最長時間 (秒)。
-
開始位置 - 只處理新記錄,或所有現有的記錄。
-
最新 - 處理已新增到串流的記錄。
-
水平修剪 - 處理所有在串流中的記錄。
處理任何現有的記錄後,該函式已跟上進度並持續處理新的記錄。
-
失敗時的目的地 — 無法處理之記錄的標準SQS佇列或標準SNS主題。當 Lambda 捨棄太舊或已耗盡所有重試的一批記錄時,Lambda 會將該批次的詳細資料傳送至此佇列或主題。
重試嘗試 - 當函數傳回錯誤時,Lambda 重試的次數上限。這不適用於服務錯誤或調節,其中批次並沒有到達函數。
記錄最大存留期 - Lambda 傳送至函數之記錄的最大存留期。
在錯誤時分割批次 - 當函數傳回錯誤時,先將批次分割為兩個,再進行重試。您原始的批次大小設定仍會維持不變。
每個碎片的並行批次 - 同時處理來自同一個碎片的多個批次。
-
已啟用 - 設定為 true 可啟用事件來源映射。設定為 false 以停止處理記錄。Lambda 會追蹤上次處理的進度,並在重新啟用映射時從該時間點恢復處理。
注意
作為 DynamoDB 觸發器的一部分,Lambda GetRecords API 呼叫的呼叫不需支付費用。
若要稍後管理事件來源的組態,請選擇設計工具中的觸發。