簡體   English   中英

運行 lambda 還是編寫腳本?

[英]Running a lambda or writing a script?

我有一個 lambda 附加到一個 s3 存儲桶,該存儲桶將包含歷史數據(20-25MB)。 此數據將按月包含文件夾,每個月在 txt 文件中將有超過 40 萬條記錄。 lambda 為每個 S3EventNotification 觸發,並將逐行解析文件並保存在 DynamoDB 表中。 在啟動到 prod 之前,我需要在 DynamoDB 表中保存歷史數據。 編寫腳本比運行 lambda 更好嗎?

我所做的一些研究是因為文件大小可能很大,lambda 可能會超時。 此外,對於 lambda,內存使用量限制為 512Mb。

您的問題有點不清楚,但我認為您是在問如何在 S3 存儲桶中已有的所有對象上再次運行 Lambda 函數

最簡單的方法是將AWS Lambda 與 Amazon S3 批處理操作一起使用 - AWS Lambda

您可以使用 Amazon S3 批處理操作對大量 Amazon S3 對象調用 Lambda 函數。 Amazon S3 跟蹤批處理操作的進度、發送通知並存儲顯示每個操作狀態的完成報告。

S3 批量操作

這樣,可以再次觸發 Lambda 函數,就好像對象剛剛上傳一樣。 請注意,多個對象可能會傳遞給單個 Lambda 函數調用,因此請確保該函數循環遍歷event['Records']列表,而不僅僅是處理event['Records'][0]

如果您擔心 Lambda 函數可能會超時,您可以將超時增加到最多 15 分鍾。 為函數分配更多內存也會分配更多 CPU,這可能會使其運行速度更快(但成本也會增加)。 處理完文件后,請務必將其從/tmp/刪除以避免達到限制。

但是,如果對象大於 512MB 或處理時間超過 15 分鍾,則不適合使用 AWS Lambda 函數。

暫無
暫無

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

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