用途
awsflow-sns 用于管理 Amazon SNS 主题、订阅、发布、平台应用、SMS 和端点。当用户需要了解 SNS 主题或通知、向主题发布消息、检查订阅或端点、询问 SMS 或推送通知、检查数据保护策略或沙箱状态,或需要创建/删除主题、订阅、端点以及配置主题或订阅属性时,可使用本技能。
主要能力
查询与列表
- ListTopics:列出所有 SNS 主题,支持 NextToken 分页。
- GetTopicAttributes:获取主题属性(策略、订阅数量等),需提供 TopicArn。
- ListSubscriptions:列出所有订阅,支持 NextToken 分页。
- ListSubscriptionsByTopic:列出指定主题的订阅,需提供 TopicArn,支持 NextToken 分页。
- GetSubscriptionAttributes:获取订阅属性,需提供 SubscriptionArn。
- ListTagsForResource:列出 SNS 资源的标签,需提供 ResourceArn。
- ListPlatformApplications:列出推送通知平台应用,支持 NextToken 分页。
- GetPlatformApplicationAttributes:获取平台应用属性,需提供 PlatformApplicationArn。
- ListEndpointsByPlatformApplication:列出平台应用的端点,需提供 PlatformApplicationArn。
- GetEndpointAttributes:获取端点属性,需提供 EndpointArn。
SMS 与数据保护
- GetSMSAttributes:获取 SMS 发送属性,可指定要检索的属性名数组,如 DefaultSMSType、MonthlySpendLimit。
- GetSMSSandboxAccountStatus:检查账户是否处于 SMS 沙箱,无需参数。
- GetDataProtectionPolicy:获取主题的数据保护策略,需提供 ResourceArn。
- CheckIfPhoneNumberIsOptedOut:检查手机号是否已退订,需提供 E.164 格式手机号。
- ListPhoneNumbersOptedOut:列出已退订的手机号。
- ListOriginationNumbers:列出原始电话号码。
发布消息
- Publish:向主题发布消息。需提供 TopicArn 和 Message;可选 Subject(用于邮件订阅)、TargetArn(直发)、phoneNumber(SMS 的 E.164 号码)、MessageStructure(设为 json 以按协议发送不同消息)、MessageAttributes(自定义消息属性)。
生命周期操作
- CreateTopic:创建新主题,需提供 Name。
- Subscribe:订阅端点至主题,需提供 TopicArn、Protocol、Endpoint。
- ConfirmSubscription:确认基于令牌的订阅,需提供 TopicArn 和 Token。
- Unsubscribe:取消订阅,需提供 SubscriptionArn。
- SetTopicAttributes:更新主题属性,需提供 TopicArn、AttributeName、AttributeValue。
- SetSubscriptionAttributes:更新订阅属性,需提供 SubscriptionArn、AttributeName、AttributeValue。
- CreatePlatformApplication:创建平台应用,需提供 Name、Platform、Attributes(如 PlatformCredential)。
- CreatePlatformEndpoint:创建平台端点,需提供 PlatformApplicationArn 和 Token。
- DeleteTopic:删除主题,需提供 TopicArn。
- DeletePlatformApplication:删除平台应用,需提供 PlatformApplicationArn。
- DeleteEndpoint:删除端点,需提供 EndpointArn。
- TagResource:为 SNS 资源添加标签,需提供 ResourceArn 和 Tags 数组(Key/Value)。
- UntagResource:移除 SNS 资源标签,需提供 ResourceArn 和 TagKeys 数组。
使用方式
通过 SNSTool 执行 AWS SNS 命令,且始终需要提供 params 对象。命令以 JSON 形式描述,例如列出主题为 { "command": "ListTopics", "params": {} },发布消息为 { "command": "Publish", "params": { "TopicArn": "arn:aws:sns:...", "Message": "Hello World", "Subject": "Test" } },创建主题为 { "command": "CreateTopic", "params": { "Name": "alerts" } }。各命令的参数类型、是否必填与说明见上方主要能力中的描述。
适用场景与关联服务
- SNS → SQS:SNS 主题常订阅 SQS 队列实现扇出。可用 ListSubscriptionsByTopic 查找 SQS 订阅,再用 SQSTool 检查队列。
- SNS → Lambda:SNS 可触发 Lambda 函数。可用 ListSubscriptionsByTopic 查找 Lambda 订阅。
- SNS → S3:S3 事件通知可发布到 SNS。可用 S3Tool GetBucketNotificationConfiguration 查找主题。
- SNS → CloudWatch:SNS 投递指标位于 CloudWatch Metrics。
- SNS → CloudFormation:SNS 资源可由 CloudFormation 栈管理。
限制
资料未提供收费、价格、平台支持范围、安装命令、版本与配额等信息,暂未提供。