用途
AWS SNS 技能用于在命令行环境中管理 Amazon SNS 的主题、订阅与通知发布,适合把发布、订阅、查看主题与订阅信息等日常操作集中在一套命令中完成。
主要能力
- 列出主题:使用 aws sns list-topics 并以 --query 'Topics[].TopicArn' 与 table 输出查看主题 ARN 列表。
- 获取主题属性:使用 aws sns get-topic-attributes --topic-arn "$SNS_TOPIC_ARN",通过 jq 提取 DisplayName、SubscriptionsConfirmed、SubscriptionsPending 等属性。
- 列出订阅:使用 aws sns list-subscriptions-by-topic --topic-arn "$SNS_TOPIC_ARN",可查看每个订阅的 Endpoint、Protocol 与 SubscriptionArn(状态)。
- 发布消息:使用 aws sns publish --topic-arn "$SNS_TOPIC_ARN",可指定 --subject 与 --message,并返回 MessageId。
- 发布 JSON 消息:使用 aws sns publish 配合 --message-structure json 与 JSON 消息体,按协议(如 default、email、sms)提供不同内容。
- 订阅端点:使用 aws sns subscribe --topic-arn "$SNS_TOPIC_ARN" --protocol 与 --notification-endpoint 创建订阅,并返回 SubscriptionArn。
使用方式
所有操作均以 aws sns 命令为基础,通常需要提供主题 ARN(示例中使用环境变量 $SNS_TOPIC_ARN)。输出可通过 --query 与 jq 进行字段筛选与格式化,例如提取 TopicArn 列表或 MessageId。
适用场景
- 查看当前账号下的 SNS 主题清单。
- 检查某个主题的订阅确认状态。
- 向主题发布通知(如部署完成提示、告警)。
- 按协议定制不同内容的消息(如邮件与短信内容不同)。
- 为邮箱等端点创建订阅。
限制与注意事项
- 邮件订阅需要接收方确认后才会生效。
- 在执行发布或订阅端点操作前应先进行确认。
- 其他限制(如权限要求、配额、区域配置等)暂未提供。