簡體   English   中英

使用 AWS 庫的 Singleton 設計模式

[英]Using Singleton Design Pattern for AWS Library

我正在為自己創建一個 AWS 客戶端庫,用於 AWS Lambda。將它們存儲在 Lambda 層中

AWS:
-DynamoDBAdapter.js
-APIGatewayWebsocketAdapter.js
-S3Adapter.js
-SecretManagerAdapter.js

並在我的 lambda 函數中使用它們:

const DynamoDBAdapter = require("/opt/aws/DynamoDBAdapter.js")

將這些類創建為 Singleton 是優化的好主意嗎? 這樣我就不會在構造函數中為 aws 服務初始化多個客戶端(使用 aws sdk v3),或者它會在高請求時導致進程節流嗎?

如果有任何答案,請嘗試在線搜索。

由@jarmod 提供

使用 singleton 方法不一定會使 Lambda function 的多次調用使用相同的客戶端實例。 例如,如果同時觸發 Lambda function 的 500 次調用,並且配置了足夠的並發性,則 Lambda 服務可以創建 500 個執行環境,因此客戶端不會重用。 但是如果 Lambda 服務可以重用之前的執行環境(因為他們已經完成了之前請求的處理)那么你就會得到客戶端重用

人們應該平衡並發設置與他們擁有的請求量。 Static 初始化(或 Singleton 關於構造函數的設計模式)將在重用執行環境時進行優化。 這是否會受到限制取決於所使用的服務、您的配置、它們的速率限制和請求量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM