本文档 AWS CLI 仅适用于版本 1。有关版本 2 的文档 AWS CLI,请参阅版本 2 用户指南。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
以下代码示例向您展示如何在 Amazon 中使用来执行操作和实现常见场景SNS。 AWS Command Line Interface
操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。
场景是向您展示如何通过在一个服务中调用多个函数或与其他 AWS 服务结合来完成特定任务的代码示例。
每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。
操作
以下代码示例显示了如何使用add-permission
。
- AWS CLI
-
为主题添加权限
以下
add-permission
示例添加了账户在 AWS AWS 账户987654321098
下使用指定主题的Publish
操作的权限123456789012
。aws sns add-permission \ --topic-arn
arn:aws:sns:us-west-2:123456789012:MyTopic
\ --labelPublish-Permission
\ --aws-account-id987654321098
\ --action-namePublish
此命令不生成任何输出。
-
有关API详细信息,请参阅 “AddPermission AWS CLI
命令参考”。
-
以下代码示例显示了如何使用check-if-phone-number-is-opted-out
。
- AWS CLI
-
要查看SMS留言,请选择退出电话号码
以下
check-if-phone-number-is-opted-out
示例检查指定的电话号码是否已选择不接收来自当前 AWS 账户的SMS消息。aws sns check-if-phone-number-is-opted-out \ --phone-number
+1555550100
输出:
{ "isOptedOut": false }
-
有关API详细信息,请参阅 “CheckIfPhoneNumberIsOptedOut AWS CLI
命令参考”。
-
以下代码示例显示了如何使用confirm-subscription
。
- AWS CLI
-
确认订阅
以下
confirm-subscription
命令完成订阅名my-topic
为的SNS主题时启动的确认过程。--token 参数来自发送到订阅调用中指定的通知端点的确认消息。aws sns confirm-subscription \ --topic-arn
arn:aws:sns:us-west-2:123456789012:my-topic
\ --token2336412f37fb687f5d51e6e241d7700ae02f7124d8268910b858cb4db727ceeb2474bb937929d3bdd7ce5d0cce19325d036bc858d3c217426bcafa9c501a2cace93b83f1dd3797627467553dc438a8c974119496fc3eff026eaa5d14472ded6f9a5c43aec62d83ef5f49109da7176391
输出:
{ "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f" }
-
有关API详细信息,请参阅 “ConfirmSubscription AWS CLI
命令参考”。
-
以下代码示例显示了如何使用create-platform-application
。
- AWS CLI
-
创建平台应用程序
以下
create-platform-application
示例使用指定的平台凭据创建了一个 Google Firebase 平台应用程序。aws sns create-platform-application \ --name
MyApplication
\ --platformGCM
\ --attributesPlatformCredential=EXAMPLEabcd12345jklm67890stuv12345bcdef
输出:
{ "PlatformApplicationArn": "arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication" }
-
有关API详细信息,请参阅 “CreatePlatformApplication AWS CLI
命令参考”。
-
以下代码示例显示了如何使用create-topic
。
- AWS CLI
-
创建 SNS 主题
以下
create-topic
示例创建了一个名为SNS的主题my-topic
。aws sns create-topic \ --name
my-topic
输出:
{ "ResponseMetadata": { "RequestId": "1469e8d7-1642-564e-b85d-a19b4b341f83" }, "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic" }
有关更多信息,请参阅《 AWS 命令行界面用户指南》SNS中的在 Amazon SQS 和 Amazon 上使用AWS命令行界面。
-
有关API详细信息,请参阅 “CreateTopic AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-endpoint
。
- AWS CLI
-
删除平台应用程序终端节点
以下
delete-endpoint
示例删除了指定的平台应用程序终端节点。aws sns delete-endpoint \ --endpoint-arn
arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234
此命令不生成任何输出。
-
有关API详细信息,请参阅 “DeleteEndpoint AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-platform-application
。
- AWS CLI
-
删除平台应用程序
以下
delete-platform-application
示例删除了指定的平台应用程序。aws sns delete-platform-application \ --platform-application-arn
arn:aws:sns:us-west-2:123456789012:app/ADM/MyApplication
此命令不生成任何输出。
-
有关API详细信息,请参阅 “DeletePlatformApplication AWS CLI
命令参考”。
-
以下代码示例显示了如何使用delete-topic
。
- AWS CLI
-
删除SNS主题
以下
delete-topic
示例删除了指定的SNS主题。aws sns delete-topic \ --topic-arn
"arn:aws:sns:us-west-2:123456789012:my-topic"
此命令不生成任何输出。
-
有关API详细信息,请参阅 “DeleteTopic AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-endpoint-attributes
。
- AWS CLI
-
列出平台应用程序终端节点属性
以下
get-endpoint-attributes
示例列出了指定平台应用程序终端节点的属性。aws sns get-endpoint-attributes \ --endpoint-arn
arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234
输出:
{ "Attributes": { "Enabled": "true", "Token": "EXAMPLE12345..." } }
-
有关API详细信息,请参阅 “GetEndpointAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-platform-application-attributes
。
- AWS CLI
-
列出平台应用程序的属性
以下
get-platform-application-attributes
示例列出了指定平台应用程序的属性。aws sns get-platform-application-attributes \ --platform-application-arn
arn:aws:sns:us-west-2:123456789012:app/MPNS/MyApplication
输出:
{ "Attributes": { "Enabled": "true", "SuccessFeedbackSampleRate": "100" } }
-
有关API详细信息,请参阅 “GetPlatformApplicationAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-sms-attributes
。
- AWS CLI
-
列出默认SMS消息属性
以下
get-sms-attributes
示例列出了发送SMS消息的默认属性。aws sns get-sms-attributes
输出:
{ "attributes": { "DefaultSenderID": "MyName" } }
-
有关API详细信息,请参阅etSMSAttributes《AWS CLI 命令参考》中的 G
。
-
以下代码示例显示了如何使用get-subscription-attributes
。
- AWS CLI
-
检索主题的订阅属性
下面
get-subscription-attributes
显示了指定订阅的属性。你可以subscription-arn
从list-subscriptions
命令的输出中获取。aws sns get-subscription-attributes \ --subscription-arn
"arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f"
输出:
{ "Attributes": { "Endpoint": "my-email@example.com", "Protocol": "email", "RawMessageDelivery": "false", "ConfirmationWasAuthenticated": "false", "Owner": "123456789012", "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f", "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic" } }
-
有关API详细信息,请参阅 “GetSubscriptionAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用get-topic-attributes
。
- AWS CLI
-
检索主题的属性
以下
get-topic-attributes
示例将显示指定主题的属性。aws sns get-topic-attributes \ --topic-arn
"arn:aws:sns:us-west-2:123456789012:my-topic"
输出:
{ "Attributes": { "SubscriptionsConfirmed": "1", "DisplayName": "my-topic", "SubscriptionsDeleted": "0", "EffectiveDeliveryPolicy": "{\"http\":{\"defaultHealthyRetryPolicy\":{\"minDelayTarget\":20,\"maxDelayTarget\":20,\"numRetries\":3,\"numMaxDelayRetries\":0,\"numNoDelayRetries\":0,\"numMinDelayRetries\":0,\"backoffFunction\":\"linear\"},\"disableSubscriptionOverrides\":false}}", "Owner": "123456789012", "Policy": "{\"Version\":\"2008-10-17\",\"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:DeleteTopic\",\"SNS:GetTopicAttributes\",\"SNS:Publish\",\"SNS:RemovePermission\",\"SNS:AddPermission\",\"SNS:SetTopicAttributes\"],\"Resource\":\"arn:aws:sns:us-west-2:123456789012:my-topic\",\"Condition\":{\"StringEquals\":{\"AWS:SourceOwner\":\"0123456789012\"}}}]}", "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic", "SubscriptionsPending": "0" } }
-
有关API详细信息,请参阅 “GetTopicAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-endpoints-by-platform-application
。
- AWS CLI
-
列出平台应用程序的终端节点
以下
list-endpoints-by-platform-application
示例列出了指定平台应用程序的终端节点和终端节点属性。aws sns list-endpoints-by-platform-application \ --platform-application-arn
arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication
输出:
{ "Endpoints": [ { "Attributes": { "Token": "EXAMPLE12345..., "Enabled": "true" }, "EndpointArn": "arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234" } ] }
-
有关API详细信息,请参阅 “ListEndpointsByPlatformApplication AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-phone-numbers-opted-out
。
- AWS CLI
-
列出退出SMS留言
以下
list-phone-numbers-opted-out
示例列出了选择不接收SMS消息的电话号码。aws sns list-phone-numbers-opted-out
输出:
{ "phoneNumbers": [ "+15555550100" ] }
-
有关API详细信息,请参阅 “ListPhoneNumbersOptedOut AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-platform-applications
。
- AWS CLI
-
列出平台应用程序
以下
list-platform-applications
示例列出了ADM和的平台应用程序MPNS。aws sns list-platform-applications
输出:
{ "PlatformApplications": [ { "PlatformApplicationArn": "arn:aws:sns:us-west-2:123456789012:app/ADM/MyApplication", "Attributes": { "SuccessFeedbackSampleRate": "100", "Enabled": "true" } }, { "PlatformApplicationArn": "arn:aws:sns:us-west-2:123456789012:app/MPNS/MyOtherApplication", "Attributes": { "SuccessFeedbackSampleRate": "100", "Enabled": "true" } } ] }
-
有关API详细信息,请参阅 “ListPlatformApplications AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-subscriptions-by-topic
。
- AWS CLI
-
列出与主题关联的订阅
以下内容
list-subscriptions-by-topic
检索与指定主题关联的SNS订阅列表。aws sns list-subscriptions-by-topic \ --topic-arn
"arn:aws:sns:us-west-2:123456789012:my-topic"
输出:
{ "Subscriptions": [ { "Owner": "123456789012", "Endpoint": "my-email@example.com", "Protocol": "email", "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic", "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f" } ] }
-
有关API详细信息,请参阅 “ListSubscriptionsByTopic AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-subscriptions
。
- AWS CLI
-
列出您的SNS订阅
以下
list-subscriptions
示例显示了您 AWS 账户中的SNS订阅列表。aws sns list-subscriptions
输出:
{ "Subscriptions": [ { "Owner": "123456789012", "Endpoint": "my-email@example.com", "Protocol": "email", "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic", "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f" } ] }
-
有关API详细信息,请参阅 “ListSubscriptions AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-tags-for-resource
。
- AWS CLI
-
列出主题的标签
以下
list-tags-for-resource
示例列出了指定 Amazon SNS 主题的标签。aws sns list-tags-for-resource \ --resource-arn
arn:aws:sns:us-west-2:123456789012:MyTopic
输出:
{ "Tags": [ { "Key": "Team", "Value": "Alpha" } ] }
-
有关API详细信息,请参阅 “ListTagsForResource AWS CLI
命令参考”。
-
以下代码示例显示了如何使用list-topics
。
- AWS CLI
-
列出你的SNS话题
以下
list-topics
示例列出了您 AWS 账户中的所有SNS主题。aws sns list-topics
输出:
{ "Topics": [ { "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic" } ] }
-
有关API详细信息,请参阅 “ListTopics AWS CLI
命令参考”。
-
以下代码示例显示了如何使用opt-in-phone-number
。
- AWS CLI
-
选择接收消息 SMS
以下
opt-in-phone-number
示例选择指定的电话号码接收SMS消息。aws sns opt-in-phone-number \ --phone-number
+15555550100
此命令不生成任何输出。
-
有关API详细信息,请参阅 “OptInPhoneNumber AWS CLI
命令参考”。
-
以下代码示例显示了如何使用publish
。
- AWS CLI
-
示例 1:向主题发布消息
以下
publish
示例将指定的消息发布到指定的SNS主题。该消息来自一个文本文件,您可以在该文件中包含换行符。aws sns publish \ --topic-arn
"arn:aws:sns:us-west-2:123456789012:my-topic"
\ --messagefile://message.txt
message.txt
的内容:Hello World Second Line
输出:
{ "MessageId": "123a45b6-7890-12c3-45d6-111122223333" }
示例 2:向电话号码发布SMS消息
以下
publish
示例将消息Hello world!
发布到电话号码+1-555-555-0100
。aws sns publish \ --message
"Hello world!"
\ --phone-number+1-555-555-0100
输出:
{ "MessageId": "123a45b6-7890-12c3-45d6-333322221111" }
-
有关API详细信息,请参阅在《AWS CLI 命令参考》中发布
。
-
以下代码示例显示了如何使用put-data-protection-policy
。
- AWS CLI
-
设置数据保护政策
示例 1:拒绝发布者使用发布消息 CreditCardNumber
以下
put-data-protection-policy
示例拒绝发布者使用发布消息 CreditCardNumber。aws sns put-data-protection-policy \ --resource-arn
arn:aws:sns:us-east-1:123456789012:mytopic
\ --data-protection-policy "{\"Name\":\"data_protection_policy\",\"Description\":\"Example data protection policy\",\"Version\":\"2021-06-01\",\"Statement\":[{\"DataDirection\":\"Inbound\",\"Principal\":[\"*\"],\"DataIdentifier\":[\"arn:aws:dataprotection::aws:data-identifier/CreditCardNumber\"],\"Operation\":{\"Deny\":{}}}]}"此命令不生成任何输出。
示例 2:从文件加载参数
以下内容从文件
put-data-protection-policy
加载参数。aws sns put-data-protection-policy \ --resource-arn
arn:aws:sns:us-west-2:123456789012:MyTopic
\ --data-protection-policyfile://policy.json
此命令不生成任何输出。
-
有关API详细信息,请参阅 “PutDataProtectionPolicy AWS CLI
命令参考”。
-
以下代码示例显示了如何使用remove-permission
。
- AWS CLI
-
从主题中移除权限
以下
remove-permission
示例Publish-Permission
从指定主题中移除权限。aws sns remove-permission \ --topic-arn
arn:aws:sns:us-west-2:123456789012:MyTopic
\ --labelPublish-Permission
此命令不生成任何输出。
-
有关API详细信息,请参阅 “RemovePermission AWS CLI
命令参考”。
-
以下代码示例显示了如何使用set-endpoint-attributes
。
- AWS CLI
-
设置端点属性
以下
set-endpoint-attributes
示例禁用了指定的平台应用程序终端节点。aws sns set-endpoint-attributes \ --endpoint-arn
arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234
\ --attributesEnabled=false
输出:
{ "Attributes": { "Enabled": "false", "Token": "EXAMPLE12345..." } }
-
有关API详细信息,请参阅 “SetEndpointAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用set-platform-application-attributes
。
- AWS CLI
-
设置平台应用程序属性
以下
set-platform-application-attributes
示例将指定平台应用程序的EventDeliveryFailure
属性设置为指定 Amazon SNS 主题的。ARNaws sns set-platform-application-attributes \ --platform-application-arn
arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication
\ --attributesEventDeliveryFailure=arn:aws:sns:us-west-2:123456789012:AnotherTopic
此命令不生成任何输出。
-
有关API详细信息,请参阅 “SetPlatformApplicationAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用set-sms-attributes
。
- AWS CLI
-
设置SMS消息属性
以下
set-sms-attributes
示例将SMS邮件的默认发件人 ID 设置为MyName
。aws sns set-sms-attributes \ --attributes
DefaultSenderID=MyName
此命令不生成任何输出。
-
有关API详细信息,请参阅etSMSAttributes《AWS CLI 命令参考》中的 S
。
-
以下代码示例显示了如何使用set-subscription-attributes
。
- AWS CLI
-
设置订阅属性
以下
set-subscription-attributes
示例将该RawMessageDelivery
属性设置为订SQS阅。aws sns set-subscription-attributes \ --subscription-arn
arn:aws:sns:us-east-1:123456789012:mytopic:f248de18-2cf6-578c-8592-b6f1eaa877dc
\ --attribute-nameRawMessageDelivery
\ --attribute-valuetrue
此命令不生成任何输出。
以下
set-subscription-attributes
示例为SQS订阅设置一个FilterPolicy
属性。aws sns set-subscription-attributes \ --subscription-arn
arn:aws:sns:us-east-1:123456789012:mytopic:f248de18-2cf6-578c-8592-b6f1eaa877dc
\ --attribute-nameFilterPolicy
\ --attribute-value "{ \"anyMandatoryKey\": [\"any\", \"of\", \"these\"] }"此命令不生成任何输出。
以下
set-subscription-attributes
示例从SQS订阅中删除了该FilterPolicy
属性。aws sns set-subscription-attributes \ --subscription-arn
arn:aws:sns:us-east-1:123456789012:mytopic:f248de18-2cf6-578c-8592-b6f1eaa877dc
\ --attribute-nameFilterPolicy
\ --attribute-value"{}"
此命令不生成任何输出。
-
有关API详细信息,请参阅 “SetSubscriptionAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用set-topic-attributes
。
- AWS CLI
-
为主题设置属性
以下
set-topic-attributes
示例为指定主题设置DisplayName
属性。aws sns set-topic-attributes \ --topic-arn
arn:aws:sns:us-west-2:123456789012:MyTopic
\ --attribute-nameDisplayName
\ --attribute-valueMyTopicDisplayName
此命令不生成任何输出。
-
有关API详细信息,请参阅 “SetTopicAttributes AWS CLI
命令参考”。
-
以下代码示例显示了如何使用subscribe
。
- AWS CLI
-
订阅主题
以下
subscribe
命令将电子邮件地址订阅到指定主题。aws sns subscribe \ --topic-arn
arn:aws:sns:us-west-2:123456789012:my-topic
\ --protocolemail
\ --notification-endpointmy-email@example.com
输出:
{ "SubscriptionArn": "pending confirmation" }
-
有关API详细信息,请参阅《AWS CLI 命令参考》中的 “订阅
”。
-
以下代码示例显示了如何使用tag-resource
。
- AWS CLI
-
为主题添加标签
以下
tag-resource
示例向指定的 Amazon SNS 主题添加元数据标签。aws sns tag-resource \ --resource-arn
arn:aws:sns:us-west-2:123456789012:MyTopic
\ --tagsKey=Team,Value=Alpha
此命令不生成任何输出。
-
有关API详细信息,请参阅 “TagResource AWS CLI
命令参考”。
-
以下代码示例显示了如何使用unsubscribe
。
- AWS CLI
-
从主题取消订阅
以下
unsubscribe
示例将从主题删除指定的订阅。aws sns unsubscribe \ --subscription-arn
arn:aws:sns:us-west-2:0123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f
此命令不生成任何输出。
-
有关API详细信息,请参阅《AWS CLI 命令参考》中的 “取消订阅
”。
-
以下代码示例显示了如何使用untag-resource
。
- AWS CLI
-
从主题中移除标签
以下
untag-resource
示例从指定的 Amazon SNS 主题中删除所有带有指定密钥的标签。aws sns untag-resource \ --resource-arn
arn:aws:sns:us-west-2:123456789012:MyTopic
\ --tag-keysTeam
此命令不生成任何输出。
-
有关API详细信息,请参阅 “UntagResource AWS CLI
命令参考”。
-
场景
以下代码示例显示如何为 Amazon SNS 推送通知创建平台终端节点。
- AWS CLI
-
创建平台应用程序端点
以下
create-platform-endpoint
示例使用指定令牌为指定平台应用程序创建端点。aws sns create-platform-endpoint \ --platform-application-arn
arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication
\ --tokenEXAMPLE12345...
输出:
{ "EndpointArn": "arn:aws:sns:us-west-2:1234567890:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234" }