搭配 Lambda 使用 DynamoDB Streams 的最佳實務 - Amazon DynamoDB

搭配 Lambda 使用 DynamoDB Streams 的最佳實務

AWS Lambda 函數會在容器中執行:容器是​與其他函數隔離的執行環境。當您第一次執行函數時,AWS Lambda 會建立新的容器並開始執行函數的程式碼。

Lambda 函式有一個處理常式,每次調用只執行一次。此處理常式包含函數的主要商業邏輯。例如,步驟 4:建立並測試 Lambda 函式 中顯示的 Lambda 函式有一個可處理 DynamoDB Streams 紀錄的處理常式。

您也可以提供只執行一次的初始化程式碼:在容器建立後、AWS Lambda 第一次執行處理常式之前。步驟 4:建立並測試 Lambda 函式 中顯示的 Lambda 函式有初始程式碼,可匯入適用於 Node.js 中 JavaScript 的開發套件,並建立 Amazon SNS 的用戶端。這些物件應該只在處理常式外部定義一次。

在函數執行後,AWS Lambda 可能選擇在後續的函數調用中重複使用此容器。在這種情況下,您的函數處理常式或許能夠重複使用您在初始化程式碼中定義的資源。(您完全無法控制 AWS Lambda 保留容器多長時間,或容器是否得以重複使用。)

若為使用 AWS Lambda 的 DynamoDB 觸發條件,我們建議:

  • AWS 服務用戶端應在初始化程式碼中 (而不是在處理常式中) 執行個體化。這會讓 AWS Lambda 在容器的生命週期期間重複使用現有的連線。

  • 一般而言,您不需要明確管理連線或實作連接共用,因為 AWS Lambda 會為您管理。

DynamoDB 串流的 Lambda 取用者無法保證僅交付一次,並可能偶爾導致出現重複項目。請確定您的 Lambda 函式程式碼具有冪等性,以防止因重複處理而產生意外問題。

如需詳細資訊,請參閱《AWS Lambda 開發人員指南》中的使用 AWS Lambda 函數的最佳實務