2015-04-27 26 views
1

我希望有人能夠幫助我,因爲我是AWS的新東西。使用AWS和SES發送SQL電子郵件

我有一個使用.NET MVC的Web應用程序,它將在AWS中部署/託管。這是我想達到什麼樣的描述:

1 - 比方說,在Web App將產品插入在SQL Server上的產品表。

2 - 當本產品插入,系統(AWS)將在SQL Server上發送電子郵件到客戶端從客戶表。

  • 那是可能的AWS?
  • 我可以在SQL Server中設置觸發器並通過SES發送電子郵件嗎?
  • 使用SQS更好嗎?因此Web應用程序將在SQS中發佈消息,然後讓另一個應用程序監聽併發送這些電子郵件,例如控制檯應用程序。

我將理解任何方向或有用的鏈接。

感謝大家提前。

+0

爲什麼不直接將SNS請求放入添加產品的功能?我看不到使用觸發器,SQS等的任何好處。我想你會因爲所有這些而不必要地複雜化。 (如果您的表現是您的擔憂,SNS請求會與SQS請求同時發生。) –

+0

嗯......這不是關於性能。這是關於責任的分離。無論如何,讓我們說,讓應用程序外部的通知服務是一個修復要求。用AWS做什麼是最好的方法? 。感謝您的回答 – osotorrio

+1

您可以使用SQS並從控制檯應用程序中使用隊列。正如MatteoSP在他的回答中所說的那樣,從數據庫觸發將違反責任分離的原則。只需向SQS發送一個事件並在另一個應用程序中處理消息,就可以發送消息,發送移動通知,無論您想從這個單獨的應用程序中獲得什麼,都可以。 –

回答

1

您的第一個問題的答案是'是'。是的SQL服務器可以使用SES發送電子郵件。由於SQL服務器可以發送電子郵件,因此只要您的帳戶經過驗證並使用SES,您只需將其設置爲使用來自SES的正確SMTP設置即可。

這就是說,我永遠不會讓我的數據庫服務器發送電子郵件,只是看起來不是正確的地方去做;即使你可以。

我已經開發並支持這樣的幾個系統,我使用的通常模式是讓Web應用程序在SQS隊列中插入一條消息,該消息將用作另一個進程的輸入以發送電子郵件。在可能的情況下,我希望將所有關於電子郵件的詳細信息納入到SQS消息中,即從主體和主體 - 下游流程發送它們時需要知道的所有內容。

在我來說,我用幾個EC2實例中運行的Windows服務的自動縮放組輪詢隊列,併發送電子郵件了。在大多數情況下,我可以將所有電子郵件存儲在SQS正文中,而windows服務則是完全通用的 - 它讀取SQS消息,編寫電子郵件併發送出去。因爲電子郵件的所有細節都在SQS消息體內,所以這個SQS隊列和正在處理它的Windows服務可以處理來自各種應用程序的電子郵件,因爲該服務不需要包含特定於該應用程序並沒有外部依賴關係。

1

至於你說到的職責分離,我看不到任何東西少表示,以發送電子郵件比DB服務器(即使它可以做到這一點).Sending電子郵件是業務層任務,肯定不是爲了數據層。

使用web應用程序觸發發送電子郵件的過程,而不是直接將其實施到Web應用程序中,或使用消息系統(如SNS),使用隊列系統(如SQS)或其他任何方式將其分開。

+0

你對DB完全正確,它不應該有這個責任。我對此的評論是因爲我不知道AWS的其他方式是否可行。我剛開始閱讀有關它。我仍然認爲網絡應用程序也不應該有這個責任。正如你所說,更好的是將它與消息傳遞系統分開。任何有用的鏈接呢?非常感謝 – osotorrio

+0

你的意思是SNS嗎?我不能推薦比參考文檔更好的東西,請參閱:http://aws.amazon.com/documentation/sns/。 SNS的使用非常簡單。 – MatteoSp

相關問題