SuperAPI AI 工具集

awsclaw-sns

部署与运维

查看项目

更新于 10-16 10:35

技能介绍

一、用途 awsclaw-sns 用于管理 Amazon SNS 的主题、订阅、发布、平台应用、SMS 与端点。当用户询问 SNS 主题或通知、需要向主题发布消息、查看订阅或端点、询问 SMS、平台应用或推送通知、检查数据保护策略或沙箱状态、创建或删除主题/订阅/端点,以及配置主题或订阅属性时,可以使用此技能。

二、主要能力 该技能通过 SNSTool 执行 AWS SNS 命令,调用时始终需要提供 params 对象。可用命令覆盖以下几类:

查询类命令:

  • ListTopics:列出所有 SNS 主题,可选参数 NextToken 用于分页。
  • GetTopicAttributes:获取主题属性,如策略、订阅数量等,必填 TopicArn。
  • ListSubscriptions:列出所有主题下的订阅,可选 NextToken。
  • ListSubscriptionsByTopic:列出指定主题的订阅,必填 TopicArn,可选 NextToken。
  • GetSubscriptionAttributes:获取订阅属性,必填 SubscriptionArn。
  • ListTagsForResource:列出 SNS 资源标签,必填 ResourceArn。
  • ListPlatformApplications:列出推送通知平台应用,可选 NextToken。
  • GetPlatformApplicationAttributes:获取平台应用属性,必填 PlatformApplicationArn。
  • ListEndpointsByPlatformApplication:列出平台应用的端点,必填 PlatformApplicationArn。
  • GetEndpointAttributes:获取端点属性,必填 EndpointArn。
  • GetSMSAttributes:获取 SMS 发送属性,可选 attributes 数组,如 DefaultSMSType、MonthlySpendLimit。
  • GetSMSSandboxAccountStatus:检查账户是否处于 SMS 沙箱。
  • GetDataProtectionPolicy:获取主题的数据保护策略,必填 ResourceArn。
  • CheckIfPhoneNumberIsOptedOut:检查号码是否已退订,必填 phoneNumber(E.164 格式)。
  • ListPhoneNumbersOptedOut:列出已退订的号码。
  • ListOriginationNumbers:列出发起号码。

发布命令:

  • Publish:向主题发布消息,必填 TopicArn 与 Message,可选 Subject(用于邮件订阅)、TargetArn(直接发布)、phoneNumber(短信,E.164)、MessageStructure(设为 json 可实现按协议定制消息)、MessageAttributes(自定义消息属性)。

生命周期命令:

  • CreateTopic:创建新主题,如名称 alerts。
  • Subscribe:将端点订阅到主题,需提供 TopicArn、Protocol 与 Endpoint。
  • ConfirmSubscription:确认订阅(针对基于令牌的订阅),需提供 TopicArn 与 Token。
  • Unsubscribe:取消订阅,需提供 SubscriptionArn。
  • SetTopicAttributes:更新主题属性,需提供 TopicArn、AttributeName 与 AttributeValue。
  • SetSubscriptionAttributes:更新订阅属性,如 RawMessageDelivery。
  • CreatePlatformApplication:创建平台应用,需提供 Name、Platform 与 Attributes(如 PlatformCredential)。
  • CreatePlatformEndpoint:创建平台端点,需提供 PlatformApplicationArn 与 Token。
  • DeleteTopic:删除主题,需提供 TopicArn。
  • DeletePlatformApplication:删除平台应用,需提供 PlatformApplicationArn。
  • DeleteEndpoint:删除端点,需提供 EndpointArn。
  • TagResource:为 SNS 资源添加标签,需提供 ResourceArn 与 Tags。
  • UntagResource:移除 SNS 资源标签,需提供 ResourceArn 与 TagKeys。

三、使用方式 通过 SNSTool 调用命令,每次调用都需提供 params 对象,例如: 列出主题:{ "command": "ListTopics", "params": {} } 获取主题属性:{ "command": "GetTopicAttributes", "params": { "TopicArn": "arn:aws:sns:us-east-1:123456789012:my-topic" } } 发布消息:{ "command": "Publish", "params": { "TopicArn": "arn:aws:sns:...", "Message": "Hello World", "Subject": "Test" } } 订阅主题:{ "command": "Subscribe", "params": { "TopicArn": "arn:aws:sns:...:alerts", "Protocol": "email", "Endpoint": "team@example.com" } } 创建主题:{ "command": "CreateTopic", "params": { "Name": "alerts" } }

四、适用场景 适用于需要运维或排查 SNS 通知、推送通知与短信发送的场景,例如查看主题与订阅状态、发布测试消息、管理平台应用与端点、检查短信退订与沙箱状态、配置数据保护策略与订阅属性等。

五、相关服务

  • 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 堆栈管理。

六、限制 技能文档未说明计费、价格、平台支持范围或性能限制,相关事实暂未提供。使用 AWS SNS 命令时需要有效的 ARN、E.164 号码等必需参数,错误或缺失参数可能导致调用失败。