Exemplos do Amazon SNS usando o AWS CLI - AWS Command Line Interface

Esta documentação é somente para a versão 1 da AWS CLI. Para obter a documentação relacionada à AWS CLI versão 2, consulte o Guia do usuário da versão 2.

Exemplos do Amazon SNS usando o AWS CLI

Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Command Line Interface com o Amazon SNS.

Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.

Cenários são exemplos de código que mostram como realizar tarefas específicas chamando várias funções dentro de um serviço ou combinadas com outros Serviços da AWS.

Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.

Ações

O código de exemplo a seguir mostra como usar add-permission.

AWS CLI

Para adicionar uma permissão a um tópico

O exemplo add-permission a seguir adiciona a permissão para que a conta da AWS 987654321098 use a ação Publish com o tópico especificado na conta da AWS 123456789012.

aws sns add-permission \ --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic \ --label Publish-Permission \ --aws-account-id 987654321098 \ --action-name Publish

Este comando não produz saída.

  • Para ver detalhes da API, consulte AddPermission na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar check-if-phone-number-is-opted-out.

AWS CLI

Para verificar o cancelamento de mensagens SMS para um número de telefone

O exemplo check-if-phone-number-is-opted-out a seguir verifica se o número de telefone especificado cancelou o recebimento de mensagens SMS em sua conta da AWS atual.

aws sns check-if-phone-number-is-opted-out \ --phone-number +1555550100

Saída:

{ "isOptedOut": false }

O código de exemplo a seguir mostra como usar confirm-subscription.

AWS CLI

Para confirmar uma assinatura

O comando confirm-subscription a seguir conclui o processo de confirmação iniciado quando você se inscreveu em um tópico do SNS chamado my-topic. O parâmetro --token vem da mensagem de confirmação enviada ao endpoint de notificação especificado na chamada de assinatura.

aws sns confirm-subscription \ --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic \ --token 2336412f37fb687f5d51e6e241d7700ae02f7124d8268910b858cb4db727ceeb2474bb937929d3bdd7ce5d0cce19325d036bc858d3c217426bcafa9c501a2cace93b83f1dd3797627467553dc438a8c974119496fc3eff026eaa5d14472ded6f9a5c43aec62d83ef5f49109da7176391

Saída:

{ "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f" }
  • Para obter detalhes da API, consulte ConfirmSubscription na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar create-platform-application.

AWS CLI

Para criar uma aplicação de plataforma

O exemplo create-platform-application a seguir cria uma aplicação para a plataforma Google Firebase usando a credencial de plataforma especificada.

aws sns create-platform-application \ --name MyApplication \ --platform GCM \ --attributes PlatformCredential=EXAMPLEabcd12345jklm67890stuv12345bcdef

Saída:

{ "PlatformApplicationArn": "arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication" }

O código de exemplo a seguir mostra como usar create-topic.

AWS CLI

Para criar um tópico do SNS

O exemplo create-topic a seguir cria um tópico do SNS chamado my-topic.

aws sns create-topic \ --name my-topic

Saída:

{ "ResponseMetadata": { "RequestId": "1469e8d7-1642-564e-b85d-a19b4b341f83" }, "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic" }

Para obter mais informações, consulte Usar a interface da linha de comando da AWS com o Amazon SQS e o Amazon SNS no Guia do usuário da interface da linha de comando da AWS.

  • Para obter detalhes da API, consulte CreateTopic na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar delete-endpoint.

AWS CLI

Para excluir um endpoint de aplicação de plataforma

O exemplo delete-endpoint a seguir exclui o endpoint da aplicação de plataforma especificada.

aws sns delete-endpoint \ --endpoint-arn arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234

Este comando não produz saída.

  • Para ver detalhes da API, consulte DeleteEndpoint na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar delete-platform-application.

AWS CLI

Para excluir uma aplicação de plataforma

O exemplo delete-platform-application a seguir exclui a aplicação de plataforma especificada.

aws sns delete-platform-application \ --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/ADM/MyApplication

Este comando não produz saída.

O código de exemplo a seguir mostra como usar delete-topic.

AWS CLI

Para excluir um tópico do SNS

O exemplo delete-topic a seguir exclui o tópico do SNS especificado.

aws sns delete-topic \ --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic"

Este comando não produz saída.

  • Para obter detalhes da API, consulte DeleteTopic na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar get-endpoint-attributes.

AWS CLI

Para listar os atributos do endpoint de aplicação de plataforma

O exemplo get-endpoint-attributes a seguir lista os atributos do endpoint da aplicação de plataforma especificada.

aws sns get-endpoint-attributes \ --endpoint-arn arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234

Saída:

{ "Attributes": { "Enabled": "true", "Token": "EXAMPLE12345..." } }

O código de exemplo a seguir mostra como usar get-platform-application-attributes.

AWS CLI

Para listar os atributos de aplicação de plataforma

O exemplo get-platform-application-attributes a seguir lista os atributos da aplicação de plataforma especificada.

aws sns get-platform-application-attributes \ --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/MPNS/MyApplication

Saída:

{ "Attributes": { "Enabled": "true", "SuccessFeedbackSampleRate": "100" } }

O código de exemplo a seguir mostra como usar get-sms-attributes.

AWS CLI

Para listar os atributos padrão da mensagem SMS

O exemplo get-sms-attributes a seguir lista os atributos padrão para o envio de mensagens SMS.

aws sns get-sms-attributes

Saída:

{ "attributes": { "DefaultSenderID": "MyName" } }
  • Para obter detalhes da API, consulte GetSMSAttributes na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar get-subscription-attributes.

AWS CLI

Para recuperar atributos de assinatura de um tópico

O get-subscription-attributes a seguir exibe os atributos da assinatura especificada. É possível obter o subscription-arn a partir da saída do comando list-subscriptions.

aws sns get-subscription-attributes \ --subscription-arn "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f"

Saída:

{ "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" } }

O código de exemplo a seguir mostra como usar get-topic-attributes.

AWS CLI

Para recuperar os atributos de um tópico

O exemplo get-topic-attributes a seguir exibe os atributos do tópico especificado.

aws sns get-topic-attributes \ --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic"

Saída:

{ "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" } }
  • Para obter detalhes da API, consulte GetTopicAttributes na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar list-endpoints-by-platform-application.

AWS CLI

Para listar os endpoints de uma aplicação de plataforma

O exemplo list-endpoints-by-platform-application a seguir lista os endpoints e os atributos do endpoint para a aplicação de plataforma especificada.

aws sns list-endpoints-by-platform-application \ --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication

Saída:

{ "Endpoints": [ { "Attributes": { "Token": "EXAMPLE12345..., "Enabled": "true" }, "EndpointArn": "arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234" } ] }

O código de exemplo a seguir mostra como usar list-phone-numbers-opted-out.

AWS CLI

Para listar as opções de cancelamento de mensagens SMS

O exemplo list-phone-numbers-opted-out a seguir lista os números de telefone que optaram por não receber mensagens SMS.

aws sns list-phone-numbers-opted-out

Saída:

{ "phoneNumbers": [ "+15555550100" ] }

O código de exemplo a seguir mostra como usar list-platform-applications.

AWS CLI

Para listar as aplicações de plataforma

O exemplo list-platform-applications a seguir lista as aplicações de plataforma para ADM e MPNS.

aws sns list-platform-applications

Saída:

{ "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" } } ] }

O código de exemplo a seguir mostra como usar list-subscriptions-by-topic.

AWS CLI

Para listar as assinaturas associadas a um tópico

O list-subscriptions-by-topic a seguir recupera uma lista de assinaturas do SNS associadas ao tópico especificado.

aws sns list-subscriptions-by-topic \ --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic"

Saída:

{ "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" } ] }

O código de exemplo a seguir mostra como usar list-subscriptions.

AWS CLI

Para listar suas assinaturas do SNS

O exemplo list-subscriptions a seguir exibe uma lista das assinaturas do SNS em sua conta da AWS.

aws sns list-subscriptions

Saída:

{ "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" } ] }
  • Para obter detalhes da API, consulte ListSubscriptions na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar list-tags-for-resource.

AWS CLI

Para listar tags para um tópico

O exemplo list-tags-for-resource a seguir lista as tags para o tópico do Amazon SNS especificado.

aws sns list-tags-for-resource \ --resource-arn arn:aws:sns:us-west-2:123456789012:MyTopic

Saída:

{ "Tags": [ { "Key": "Team", "Value": "Alpha" } ] }

O código de exemplo a seguir mostra como usar list-topics.

AWS CLI

Listar os tópicos do SNS

O exemplo list-topics a seguir lista todos os tópicos do SNS em sua conta da AWS.

aws sns list-topics

Saída:

{ "Topics": [ { "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic" } ] }
  • Para obter detalhes da API, consulte ListTopics na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar opt-in-phone-number.

AWS CLI

Como optar por receber mensagens SMS

O exemplo opt-in-phone-number a seguir aceita o recebimento de mensagens SMS para os números de telefone especificados.

aws sns opt-in-phone-number \ --phone-number +15555550100

Este comando não produz saída.

  • Para ver detalhes da API, consulte OptInPhoneNumber na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar publish.

AWS CLI

Exemplo 1: Para publicar uma mensagem em um tópico:

O exemplo publish a seguir publica a mensagem específica no tópico do SNS especificado. A mensagem é proveniente de um arquivo de texto, o que permite incluir quebras de linha.

aws sns publish \ --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic" \ --message file://message.txt

Conteúdo de message.txt:

Hello World Second Line

Saída:

{ "MessageId": "123a45b6-7890-12c3-45d6-111122223333" }

Exemplo 2: Para publicar uma mensagem SMS em um número de telefone

O exemplo publish a seguir publica a mensagem Hello world! no número de telefone +1-555-555-0100.

aws sns publish \ --message "Hello world!" \ --phone-number +1-555-555-0100

Saída:

{ "MessageId": "123a45b6-7890-12c3-45d6-333322221111" }
  • Para obter detalhes da API, consulte Publish na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar put-data-protection-policy.

AWS CLI

Como definir uma política de proteção de dados

Exemplo 1: impedir que os publicadores publiquem mensagens com CreditCardNumber

O exemplo put-data-protection-policy a seguir impede que os publicadores publiquem mensagens com 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\":{}}}]}"

Este comando não produz saída.

Exemplo 2: carregar os parâmetros a partir de um arquivo

O exemplo put-data-protection-policy a seguir carrega os parâmetros de um arquivo.

aws sns put-data-protection-policy \ --resource-arn arn:aws:sns:us-west-2:123456789012:MyTopic \ --data-protection-policy file://policy.json

Este comando não produz saída.

O código de exemplo a seguir mostra como usar remove-permission.

AWS CLI

Para remover uma permissão de um tópico

O exemplo remove-permission a seguir remove a permissão Publish-Permission do tópico especificado.

aws sns remove-permission \ --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic \ --label Publish-Permission

Este comando não produz saída.

  • Para obter detalhes da API, consulte RemovePermission na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar set-endpoint-attributes.

AWS CLI

Como configurar atributos do endpoint

O exemplo set-endpoint-attributes a seguir desabilita o endpoint da aplicação de plataforma especificada.

aws sns set-endpoint-attributes \ --endpoint-arn arn:aws:sns:us-west-2:123456789012:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234 \ --attributes Enabled=false

Saída:

{ "Attributes": { "Enabled": "false", "Token": "EXAMPLE12345..." } }

O código de exemplo a seguir mostra como usar set-platform-application-attributes.

AWS CLI

Como configurar atributos de aplicação de plataforma

O exemplo set-platform-application-attributes a seguir define o atributo EventDeliveryFailure da aplicação de plataforma especificada para o ARN do tópico especificado do Amazon SNS.

aws sns set-platform-application-attributes \ --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication \ --attributes EventDeliveryFailure=arn:aws:sns:us-west-2:123456789012:AnotherTopic

Este comando não produz saída.

O código de exemplo a seguir mostra como usar set-sms-attributes.

AWS CLI

Para definir atributos de mensagens SMS

O exemplo set-sms-attributes a seguir define o ID do remetente padrão para mensagens SMS como MyName.

aws sns set-sms-attributes \ --attributes DefaultSenderID=MyName

Este comando não produz saída.

  • Para encontrar detalhes da API, consulte SetSMSAttributes na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar set-subscription-attributes.

AWS CLI

Para definir atributos de assinatura

O exemplo set-subscription-attributes a seguir define o atributo RawMessageDelivery para uma assinatura do SQS.

aws sns set-subscription-attributes \ --subscription-arn arn:aws:sns:us-east-1:123456789012:mytopic:f248de18-2cf6-578c-8592-b6f1eaa877dc \ --attribute-name RawMessageDelivery \ --attribute-value true

Este comando não produz saída.

O exemplo set-subscription-attributes a seguir define um atributo FilterPolicy para uma assinatura do SQS.

aws sns set-subscription-attributes \ --subscription-arn arn:aws:sns:us-east-1:123456789012:mytopic:f248de18-2cf6-578c-8592-b6f1eaa877dc \ --attribute-name FilterPolicy \ --attribute-value "{ \"anyMandatoryKey\": [\"any\", \"of\", \"these\"] }"

Este comando não produz saída.

O exemplo set-subscription-attributes a seguir remove o atributo FilterPolicy de uma assinatura do SQS.

aws sns set-subscription-attributes \ --subscription-arn arn:aws:sns:us-east-1:123456789012:mytopic:f248de18-2cf6-578c-8592-b6f1eaa877dc \ --attribute-name FilterPolicy \ --attribute-value "{}"

Este comando não produz saída.

O código de exemplo a seguir mostra como usar set-topic-attributes.

AWS CLI

Para definir um atributo para um tópico

O exemplo set-topic-attributes a seguir define o atributo DisplayName para o tópico especificado.

aws sns set-topic-attributes \ --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic \ --attribute-name DisplayName \ --attribute-value MyTopicDisplayName

Este comando não produz saída.

  • Para obter detalhes da API, consulte SetTopicAttributes na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar subscribe.

AWS CLI

Para inscrever-se em um tópico

O comando subscribe a seguir inscreve um endereço de e-mail no tópico especificado.

aws sns subscribe \ --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic \ --protocol email \ --notification-endpoint my-email@example.com

Saída:

{ "SubscriptionArn": "pending confirmation" }
  • Para obter detalhes da API, consulte Subscribe na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar tag-resource.

AWS CLI

Para adicionar uma tag a um tópico

O exemplo tag-resource a seguir adiciona uma tag de metadados ao tópico do Amazon SNS especificado.

aws sns tag-resource \ --resource-arn arn:aws:sns:us-west-2:123456789012:MyTopic \ --tags Key=Team,Value=Alpha

Este comando não produz saída.

  • Para obter detalhes da API, consulte TagResource na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar unsubscribe.

AWS CLI

Para cancelar a assinatura de um tópico

O exemplo unsubscribe a seguir exclui a assinatura especificada de um tópico.

aws sns unsubscribe \ --subscription-arn arn:aws:sns:us-west-2:0123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f

Este comando não produz saída.

  • Para obter detalhes da API, consulte Unsubscribe na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar untag-resource.

AWS CLI

Para remover uma tag de um tópico

O exemplo untag-resource a seguir remove todas as tags com as chaves especificadas do tópico do Amazon SNS especificado.

aws sns untag-resource \ --resource-arn arn:aws:sns:us-west-2:123456789012:MyTopic \ --tag-keys Team

Este comando não produz saída.

  • Para obter detalhes sobre a API, consulte UntagResource na Referência de comandos da AWS CLI.

Cenários

O exemplo de código a seguir mostra como criar um endpoint de plataforma para notificações por push do Amazon SNS.

AWS CLI

Para criar um endpoint de aplicação de plataforma

O exemplo create-platform-endpoint a seguir cria um endpoint para a aplicação de plataforma especificada usando o token especificado.

aws sns create-platform-endpoint \ --platform-application-arn arn:aws:sns:us-west-2:123456789012:app/GCM/MyApplication \ --token EXAMPLE12345...

Saída:

{ "EndpointArn": "arn:aws:sns:us-west-2:1234567890:endpoint/GCM/MyApplication/12345678-abcd-9012-efgh-345678901234" }