什么是 Amazon SNS?
Amazon Simple Notification Service(Amazon SNS)是一项完全托管式服务,提供从发布者(生产者)向订阅用户(使用者)的消息传输。发布者通过将消息发送至主题与订阅用户进行异步交流,主题是一个逻辑接入点和通信通道。
工作方式
在 SNS 中,发布者向主题发送消息,该主题充当通信通道。该主题充当逻辑接入点,确保跨不同平台将消息传递给多个订阅用户。
SNS 主题的订阅用户可以通过不同的端点接收消息,具体取决于他们的使用案例,例如:
-
Amazon SQS
-
Lambda
-
HTTP(S) 端点
-
电子邮件
-
移动推送通知
-
移动文本消息(SMS)
-
Amazon Data Firehose
-
服务提供商(例如 Datadog、MongoDB、Splunk)
SNS 支持应用程序到应用程序(A2A)和应用程序到人(A2P)消息传输,从而可以灵活地在不同的应用程序之间发送消息或直接发送到手机、电子邮件地址等。
访问 Amazon SNS
您可以通过控制台、AWS CLI 或 AWS SDK 访问和管理 Amazon SNS,具体取决于您的首选交互方式。控制台为基本任务提供图形界面,而 AWS CLI 和 SDK 则为更复杂的用例提供高级配置和自动化功能。
-
Amazon SNS 控制台
提供了一个方便的用户界面,用于创建主题和订阅、发送和接收消息以及监控事件和日志。 -
您可使用 AWS Command Line Interface (AWS CLI) 直接访问 Amazon SNS API 以获取高级配置和自动化使用案例。有关更多信息,请参阅将 Amazon SNS 与 AWS CLI 结合使用。
-
AWS 提供各种语言的开发工具包。有关更多信息,请参阅开发工具包和工具包
。
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 可以通过 SMS 和或电子邮件将这些通知发送给指定用户。例如,您可以在事件发生(如对 Amazon EC2 Auto Scaling 组进行的特定更改、上载到 Amazon S3 存储桶的新文件或 Amazon CloudWatch 的指标阈值违反)时立即接收到通知。有关更多信息,请参见 Amazon CloudWatch 用户指南中的设置 Amazon SNS 通知。
用户通知
Amazon SNS 可以向个人或组发送推送电子邮件和短信(SMS 消息)。例如,您可以将电子商务订单确认作为用户通知发送。有关使用 Amazon SNS 发送 SMS 消息的更多信息,请参阅 移动文本消息与 Amazon SNS。
移动推送通知
使用移动推送通知,可将消息直接推送到移动应用程序。例如,您可以使用 Amazon SNS 向应用程序发送更新通知。通知消息可以包含下载和安装更新的链接。有关使用 Amazon SNS 发送推送通知消息的更多信息,请参阅 使用 Amazon SNS 发送移动推送通知。
Amazon SNS 的定价
Amazon SNS 没有前期成本。您将根据您发布的消息数量、传输的通知数量以及用于管理主题和订阅的任何其他 API 调用付费。传输定价因终端节点类型而异。您可以免费开始使用 Amazon SNS 免费套餐。有关信息,请参阅全球短信定价