簡體   English   中英

Lambda函數處理了多個SQS記錄后發送電子郵件

[英]Send an email after multiple SQS records are processed by a Lambda function

我有一個AWS Lambda函數,該函數讀取CSV文件並將一堆記錄保存到SQS隊列中。 將會有成千上萬的記錄,因此它們將不會包含在一條消息中。

然后,該隊列觸發了另一個處理每個記錄的Lambda函數。 每條記錄大約需要一秒鍾的時間來處理。

處理完所有記錄后,我需要發送電子郵件。

最好的方法是什么?

我有兩個想法:

  1. 將其設置為FIFO隊列,並將LastRecord: true屬性添加到最后一條記錄。 當我閱讀該記錄時發送電子郵件。

  2. 更新DynamoDB表,使其具有記錄總數和已處理記錄總數,以及一個Lambda函數讀取該表,直到total === processed完畢。

還有更好的主意嗎?

由於消息順序是相關的,因此您應該考慮使用Amazon Kinesis Data Streams代替Amazon SQS。

一些差異:

  • 消息保持有序
  • 消息可以重播(保留一段時間)
  • 您可以從Kinesis流中觸發AWS Lambda函數
  • 多個流可用於並行處理
  • Kinesis的定價是每個碎片小時 ,而SQS的是每個請求 (例如,發送,接收,刪除)

您可以發送“最后一條消息”信號來觸發最終的電子郵件發送。

暫無
暫無

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

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