簡體   English   中英

使用SQS或SNS發送電子郵件

[英]Send emails using SQS or SNS

我有一個Web應用程序,應該在應用程序發生某些事情時向管理員用戶發送電子郵件。 例如,注冊了新用戶。

我想避免在應用程序內部構建/發送電子郵件的邏輯。 我寧願首選應用程序在隊列中發布消息,然后,還有另一個系統正在監聽並正確響應以發送電子郵件。

流程就是這樣的。

  • 應用程序在隊列中發布消息(SQS或SNS ??)
  • lambda函數是觸發器。 Lambda讀取消息並調用SES。
  • SES發送電子郵件

我不確定這是否是最佳方式。 我讀過SQS和Lambda之間存在差距。 SNS會更好嗎?

適當的流量是什么?

App - > SQS - > Lambda - > SES

要么

App - > SNS - > Lambda - > SES

也許別的什么?

請考慮到這個想法總是從所有邏輯中抽象出Web應用程序。 Web應用程序只會在某處發布消息。 然后魔術發生在后台。

根據您的描述,我建議采用以下架構:

App -> SQS -> Lambda -> SES

我將使用SQS從應用程序執行Lambda函數,或使用Cron作業工作程序作為隊列中的工作程序定期運行它。

此體系結構將App與郵件服務分離,提供異步調用和排隊。 如果需要發送更大的有效負載,請使用S3存儲這些對象,並將SQS消息中的密鑰傳遞給Lambda

將SNS排除在電子郵件的等式之外,因為您需要成為主題的訂閱者才能接收通知。 它實際上適用於AWS相關事件通知。

使用SQS,您必須處理與消息相關的限制 默認最大郵件大小為256kb,除非您使用特殊的SDK然后它是2GB。

考慮第三種選擇。 App - > DB - > Lambda - > SES

數據庫中的郵件隊列是一種簡單的表結構,您可以在計划或事件驅動的基礎上對其進行Lambda掃描,並通過SES處理郵件。 這種方式沒有SQS消息限制。

暫無
暫無

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

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