本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 是一项完全托管的服务,可提供从发布者(制作者)到订阅者(消费者)的消息传送。发布者通过将消息发送至主题与订阅者进行异步交流,主题是一个逻辑访问点和通信渠道。
工作方式
在 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
您可以通过控制台、或访问和管理 Amazon SNS AWS CLI AWS SDKs,具体取决于您的首选交互方式。该控制台为基本任务提供了图形界面,而 AWS CLI 和则为更复杂的用例 SDKs 提供了高级配置和自动化功能。
-
Amazon SNS 控制台
提供了一个方便的用户界面,用于创建主题和订阅、发送和接收消息以及监控事件和日志。 -
AWS Command Line Interface (AWS CLI) 允许您直接访问 Amazon SNS API 以获取高级配置和自动化用例。有关更多信息,请参阅将 Amazon SNS 与 AWS CLI结合使用。
-
AWS SDKs 以多种语言提供。有关更多信息,请参阅SDKs 和工具包
。
Amazon SNS 常见场景
使用这些常见的 Amazon SNS 场景可实现可扩展的事件驱动型架构,并确保应用程序和用户之间实现可靠的实时通信。
应用程序集成
扇出场景是复制发布到 SNS 主题的消息并将其推送到多个端点(例如 Firehose 传输流、Amazon SQS 队列、HTTP(S) 端点和 Lambda 函数)的场景。这允许进行并行异步处理。
例如,您可以开发一个应用程序,以在产品被下单的任何时候发布消息至 SNS 主题。然后,订阅 SNS 主题的 SQS 队列会接收到新订单的相同通知。连接到其中一个 SQS 队列的亚马逊弹性计算云 (Amazon EC2) 服务器实例可以处理或配送订单。您还可以将另一个 Amazon EC2 服务器实例附加到数据仓库中,以分析收到的所有订单。

您还可以通过扇出复制使用您的测试环境复制发送到生产环境的数据。对前一个示例进行展开讨论,您还可以为同一个 SNS 主题订阅另一个 SQS 队列,以处理新来的订单。然后,可将这个新 SQS 队列附加到测试环境中,您可以继续使用从生产环境中接收到的数据改进和测试应用程序。
重要
在将任何生产数据发送到测试环境之前,请确保您考虑数据隐私和安全性。
有关更多信息,请参阅以下资源:
应用程序提示
应用程序和系统提示是由预定义阈值触发的通知。Amazon SNS 可以通过 SMS 和或电子邮件将这些通知发送给指定用户。例如,当事件发生时,您可以立即收到通知,例如您的 Amazon A EC2 uto Scaling 组的特定更改、上传到 Amazon S3 存储桶的新文件或亚马逊的指标阈值被突破。 CloudWatch有关更多信息,请参阅亚马逊 CloudWatch 用户指南中的设置 Amazon SNS 通知。
用户通知
Amazon SNS 可以向个人或组发送推送电子邮件和短信(SMS 消息)。例如,您可以将电子商务订单确认作为用户通知发送。有关使用 Amazon SNS 发送 SMS 消息的更多信息,请参阅 移动文本消息与 Amazon SNS。
移动推送通知
使用移动推送通知,可将消息直接推送到移动应用程序。例如,您可以使用 Amazon SNS 向应用程序发送更新通知。通知消息可以包含下载和安装更新的链接。有关使用 Amazon SNS 发送推送通知消息的更多信息,请参阅 使用 Amazon SNS 发送移动推送通知。
Amazon SNS 的定价
Amazon SNS 没有前期成本。您将根据您发布的消息数量、传输的通知数量以及用于管理主题和订阅的任何其他 API 调用付费。传输定价因终端节点类型而异。您可以免费开始使用 Amazon SNS 免费套餐。有关信息,请参阅全球短信定价