本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Simple Notification Service (Amazon SNS) 是一種全受管服務,可將訊息從發佈者 (生產者) 交付給訂閱者 (消費者)。發佈者透過製作並傳送訊息到主題 (其為邏輯存取點和通訊管道) 與訂閱者進行非同步的通訊。
運作方式
在 SNS 中,發佈者會將訊息傳送到做為通訊管道的主題。主題可做為邏輯存取點,確保訊息在不同平台上交付給多個訂閱者。
SNS 主題的訂閱者可以透過不同的端點接收訊息,視其使用案例而定,例如:
-
Amazon SQS
-
Lambda
-
HTTP(S) 端點
-
電子郵件
-
行動推送通知
-
行動簡訊 (SMS)
-
Amazon Data Firehose
-
服務提供者 (例如 Datadog、MongoDB、Splunk)
SNS 同時支援Application-to-Application(A2A) Application-to-Person(A2P) 訊息,提供在不同應用程式之間或直接傳送到行動電話、電子郵件地址等的彈性。

存取 Amazon SNS
視您偏好的互動方法而定 AWS CLI,您可以透過主控台或 AWS SDKs存取和管理 Amazon SNS。主控台提供基本任務的圖形界面,而 AWS CLI 和 SDKs則提供進階組態和自動化功能,適用於更複雜的使用案例。
-
所以此 Amazon SNS 主控台
提供便利的使用者介面,用於建立主題和訂閱、傳送和接收訊息,以及監控事件和記錄。 -
AWS Command Line Interface (AWS CLI) 可讓您直接存取 Amazon SNS API,以取得進階組態和自動化使用案例。如需詳細資訊,請參閱搭配 AWS CLI使用 Amazon SNS。
-
AWS 提供多種語言SDKs。如需詳細資訊,請參閱開發套件與工具組
。
Amazon SNS 常見案例
使用這些常見的 Amazon SNS 案例來實作可擴展的事件驅動型架構,並確保應用程式和使用者之間的可靠即時通訊。
應用程式整合
廣發性案例是當發佈至 SNS 主題的訊息被複寫並推送至多個端點時,例如 Firehose 交付串流、Amazon SQS 佇列、HTTP(S) 端點和 Lambda 函數。這會允許平行非同步處理。
例如,您可以開發一個應用程式,以在系統收到產品訂單時發佈訊息到 SNS 主題。接著訂閱該 SNS 主題的 SQS 佇列均會收到相同的新訂單通知。連接到其中一個 SQS 佇列的 Amazon Elastic Compute Cloud (Amazon EC2) 伺服器執行個體可處理或履行訂單業務。您也可以將另一個 Amazon EC2 伺服器執行個體連接到資料倉儲,以便分析所有收到的訂單。

使用「發散」的另一個方法為使用您的測試環境複製傳送到生產環境的資料。延續前一個範例,您還可以為同一個 SNS 主題訂閱另一個 SQS 佇列,以處理新的訂單。透過將此新 SQS 佇列連接到測試環境,您便可利用從生產環境接收的資料,持續改進並測試您的應用程式。
重要
在將任何生產資料傳送到測試環境之前,請務必考慮資料隱私權和安全性。
如需詳細資訊,請參閱下列資源:
應用程式提醒
應用程式和系統提醒是由預先定義的閾值觸發的通知。Amazon SNS 可以透過簡訊和電子郵件將這些通知傳送給指定的使用者。舉例來說,當某個事件發生時,您可以立即收到通知,例如針對 Amazon EC2 Auto Scaling 群組的特定變更、上傳到 Amazon S3 儲存貯體的新檔案或在 Amazon CloudWatch 中違反指標閾值。如需詳細資訊,請參閱 Amazon CloudWatch 使用者指南中的設定 Amazon SNS 通知。
使用者通知
Amazon SNS 可以將推送電子郵件訊息和文字訊息 (SMS 訊息) 傳送給個人或群組。例如,您可以將電子商務訂單確認作為使用者通知傳送。如需詳細資訊,請參閱 使用 Amazon SNS 傳送行動簡訊 中的使用 Amazon SNS 訊息傳送簡訊。
行動推送通知
行動推送通知可讓您將訊息直接傳送到行動應用程式。舉例來說,您可以使用 Amazon SNS 傳送更新通知到應用程式。通知訊息可以包含下載與安裝更新的連結。如需使用 Amazon SNS 傳送推送通知訊息的詳細資訊,請參閱 使用 Amazon SNS 傳送行動推播通知。
Amazon SNS 的定價
Amazon SNS 沒有預付費用。您可以根據發佈的訊息數量、傳遞的通知數量,以及管理主題和訂閱的任何其他 API 呼叫來付費。傳遞定價會因端點類型而有所不同。您可以使用 Amazon SNS 免費方案免費開始。如需詳細資訊,請參閱全球簡訊定價