Amazon Simple Notification Service logo

Amazon Simple Notification Service

Amazon Simple Notification Service

正常免费开源cloudAmazon Web Services62· JavaScript· MIT

Amazon SNS 是 AWS 的发布订阅服务,向 email、SMS、HTTP、Lambda、SQS 等订阅者扇出消息。

访问站点 ↗源码 ↗健康巡检 9 小时前
适合什么时候用

一次发送扇出到多种订阅者类型

先注意什么

不保证投递确认(HTTP 订阅可能丢)

第一步先查

SDK 调 SNS.createTopic 建主题,subscribe 添加订阅者(如 email / SQS / Lambda),publish 发送消息。SNS 自动向所有订阅者扇出。

认证
api_key
CORS
不支持
HTTPS
注册
需要
延迟
10 ms
协议
REST
计费
paid
Stars
62

可用率 · 30 天窗口

巡检: 1可用率: 100%平均延迟: 10ms

GitHub 活跃度

62JavaScriptMIT17 未关闭 issue上次提交 110 天前
01

关于这个 API

SNS 和 SQS 是 AWS 消息生态的两根支柱——SQS 是点对点队列,SNS 是发布订阅。生产者向 topic publish 一条消息,SNS 自动复制并投递给所有 subscriber。subscriber 类型异常丰富:email、SMS、Mobile Push(APNs、FCM)、HTTP/S 回调、SQS、Lambda、Kinesis Firehose、应用本地 endpoint 等。

经典模式是 SNS + 多个 SQS 扇出(fan-out):一个事件发布到 SNS,SNS 推到多个 SQS 队列,每个队列让不同的消费者独立处理。配合 subscription filter policy(基于消息属性的 JSON 过滤),不同消费者只收自己关心的消息子集。FIFO topic 是相对较新的功能,提供顺序扇出(虽然不如 Kafka 这种专业流处理强大)。

02

你可以做什么

  • 1发送告警邮件、短信通知运维人员
  • 2推送移动 push 通知(APNs / FCM)
  • 3一对多扇出消息到多个 SQS 队列
  • 4为 CloudWatch 告警接收事件
03

优劣对比

优点

  • 一次发送扇出到多种订阅者类型
  • 支持过滤策略让订阅者只收关心的消息
  • FIFO topic 支持有序扇出

注意事项

  • 不保证投递确认(HTTP 订阅可能丢)
  • SMS 按目的国家定价,跨国成本可观
04

示例请求

通用模板 — 实际 endpoint 请查阅文档替换 <endpoint>。
curl https://github.com/mermade/aws2openapi/<endpoint> \
  -H "Authorization: Bearer $API_KEY"
# Some providers use X-Api-Key instead — verify in the docs.
05

快速开始

SDK 调 SNS.createTopic 建主题,subscribe 添加订阅者(如 email / SQS / Lambda),publish 发送消息。SNS 自动向所有订阅者扇出。

06

常见问题

SNS 和 SQS 怎么选?+

SQS 是队列,多个消费者抢消息;SNS 是广播,每个订阅者都收到。常组合使用:SNS 扇出到多个 SQS。

免费档多少?+

每月 100 万次发布免费。HTTP/S 投递每百万次 $0.60。SMS 按目的地国家单独计费。

订阅者收不到消息?+

检查订阅是否已确认(email 类需点确认链接),filter policy 是否拦截了消息。

07

技术细节

CORS: NoHTTPS: Yes注册: Yes开源: Yes
认证方式
api_key
计费
paid
协议
REST
SDK
python, javascript, java, go, ruby, csharp
响应时间
10 ms
上次巡检
2026/5/12 07:36:34
08

接口端点

从 OpenAPI spec 自动解析。显示 12 / 84 个未弃用端点。

GET
/#Action=AddPermission
TopicArn:query*Label:query*AWSAccountId:query*ActionName:query*Action:query*+1 更多
POST
/#Action=AddPermission
Action:query*Version:query*
GET
/#Action=CheckIfPhoneNumberIsOptedOut
phoneNumber:query*Action:query*Version:query*
POST
/#Action=CheckIfPhoneNumberIsOptedOut
Action:query*Version:query*
GET
/#Action=ConfirmSubscription
TopicArn:query*Token:query*AuthenticateOnUnsubscribe:queryAction:query*Version:query*
POST
/#Action=ConfirmSubscription
Action:query*Version:query*
GET
/#Action=CreatePlatformApplication
Name:query*Platform:query*Attributes:query*Action:query*Version:query*
POST
/#Action=CreatePlatformApplication
Action:query*Version:query*
GET
/#Action=CreatePlatformEndpoint
PlatformApplicationArn:query*Token:query*CustomUserData:queryAttributes:queryAction:query*+1 更多
POST
/#Action=CreatePlatformEndpoint
Action:query*Version:query*
GET
/#Action=CreateSMSSandboxPhoneNumber
PhoneNumber:query*LanguageCode:queryAction:query*Version:query*
POST
/#Action=CreateSMSSandboxPhoneNumber
Action:query*Version:query*

另有 72 个端点未显示,详见 OpenAPI spec。

09

标签

10

更多来自 Amazon Web Services 的 API