Esempi per Amazon SNS con AWS CLI - AWS Command Line Interface

Esempi per Amazon SNS con AWS CLI

Gli esempi di codice seguenti mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Command Line Interface con Amazon SNS.

Le operazioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le operazioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Gli scenari sono esempi di codice che mostrano come eseguire un'attività specifica richiamando più funzioni all'interno dello stesso servizio o combinate con altri Servizi AWS.

Ogni esempio include un link al codice sorgente completo, dove è possibile trovare le istruzioni su come configurare ed eseguire il codice nel contesto.

Operazioni

L’esempio di codice seguente mostra come utilizzare add-permission.

AWS CLI

Come aggiungere un’autorizzazione a un argomento

L’esempio add-permission seguente aggiunge l’autorizzazione per l’account AWS 987654321098 a utilizzare l’azione Publish con l’argomento specificato nell’account 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

Questo comando non produce alcun output.

  • Per informazioni dettagliate sull’API, consulta AddPermission in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare check-if-phone-number-is-opted-out.

AWS CLI

Controllo delle impostazioni di opt-out dei messaggi SMS per un numero di telefono

Nell’esempio check-if-phone-number-is-opted-out seguente, viene verificato se per un numero di telefono specifico è stata disattivata l’opzione di ricezione degli SMS dall’account AWS attuale.

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

Output:

{ "isOptedOut": false }

L’esempio di codice seguente mostra come utilizzare confirm-subscription.

AWS CLI

Conferma di una sottoscrizione

Attraverso il comando confirm-subscription seguente viene completato il processo di conferma avviato effettuando la sottoscrizione a un argomento SNS denominato my-topic. Il parametro --token proviene dal messaggio di conferma inviato all’endpoint di notifica specificato nella chiamata subscribe.

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

Output:

{ "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f" }
  • Per informazioni dettagliate sull'API, consulta ConfirmSubscription nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare create-platform-application.

AWS CLI

Come creare un'applicazione della piattaforma

L’esempio create-platform-application seguente crea un’applicazione della piattaforma Google Firebase utilizzando le credenziali di piattaforma specificate.

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

Output:

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

L’esempio di codice seguente mostra come utilizzare create-topic.

AWS CLI

Creazione di un argomento SNS

Nell’esempio create-topic seguente viene creato un argomento SNS denominato my-topic.

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

Output:

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

Per ulteriori informazioni, consulta Utilizzo dell’interfaccia della linea di comando AWS con Amazon SQS e Amazon SNS nella AWS Command Line Interface User Guide.

  • Per ulteriori informazioni sulla API, consulta CreateTopic nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare delete-endpoint.

AWS CLI

Eliminazione di un endpoint dell’applicazione della piattaforma

L’esempio delete-endpoint seguente elimina l’endpoint dell’applicazione della piattaforma specificato.

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

Questo comando non produce alcun output.

  • Per informazioni dettagliate sull’API, consulta DeleteEndpoint in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare delete-platform-application.

AWS CLI

Come eliminare un endpoint un’applicazione della piattaforma

L’esempio delete-platform-application seguente elimina l’applicazione della piattaforma specificata.

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

Questo comando non produce alcun output.

L’esempio di codice seguente mostra come utilizzare delete-topic.

AWS CLI

Eliminazione di un argomento SNS

Nell’esempio delete-topic seguente viene eliminato l’argomento SNS specificato.

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

Questo comando non produce alcun output.

  • Per informazioni dettagliate sulla API, consulta DeleteTopic nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare get-endpoint-attributes.

AWS CLI

Come elencare gli attributi dell’endpoint dell’applicazione della piattaforma

L’esempio get-endpoint-attributes seguente elenca gli attributi per l’endpoint dell’applicazione della piattaforma specificata.

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

Output:

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

L’esempio di codice seguente mostra come utilizzare get-platform-application-attributes.

AWS CLI

Come elencare gli attributi dell’applicazione della piattaforma

Nell’esempio seguente get-platform-application-attributes elenca gli attributi per l’applicazione della piattaforma specificata.

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

Output:

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

L’esempio di codice seguente mostra come utilizzare get-sms-attributes.

AWS CLI

Elencare gli attributi predefiniti dei messaggi SMS

Nell’esempio get-sms-attributes seguente vengono elencati gli attributi predefiniti per l’invio di messaggi SMS.

aws sns get-sms-attributes

Output:

{ "attributes": { "DefaultSenderID": "MyName" } }
  • Per informazioni dettagliate sull’API, consulta GetSMSAttributes nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare get-subscription-attributes.

AWS CLI

Come recuperare gli attributi di abbonamento a un argomento

Il comando seguente get-subscription-attributes visualizza gli attributi dell’abbonamento specificato. È possibile ottenere il subscription-arn dall’output del comando list-subscriptions.

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

Output:

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

L’esempio di codice seguente mostra come utilizzare get-topic-attributes.

AWS CLI

Recupero degli attributi di un argomento

Nell’esempio get-topic-attributes seguente vengono visualizzati gli attributi per l’argomento specificato.

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

Output:

{ "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" } }
  • Per informazioni dettagliate sull’API, consulta GetTopicAttributes nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare list-endpoints-by-platform-application.

AWS CLI

Come elencare gli endpoint di un’applicazione di piattaforma

L’esempio list-endpoints-by-platform-application seguente elenca gli endpoint e gli attributi dell’endpoint per l’applicazione della piattaforma specificata.

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

Output:

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

L’esempio di codice seguente mostra come utilizzare list-phone-numbers-opted-out.

AWS CLI

Elencare le opzioni di opt-out dei messaggi SMS

Nell’esempio list-phone-numbers-opted-out seguente sono elencati i numeri di telefono per i quali sono abilitate le opzioni di opt-out per la ricezione di SMS.

aws sns list-phone-numbers-opted-out

Output:

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

L’esempio di codice seguente mostra come utilizzare list-platform-applications.

AWS CLI

Come elencare le applicazioni della piattaforma

L’esempio list-platform-applications seguente elenca le applicazioni della piattaforma per ADM e MPNS.

aws sns list-platform-applications

Output:

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

L’esempio di codice seguente mostra come utilizzare list-subscriptions-by-topic.

AWS CLI

Come elencare le sottoscrizioni associate a un argomento

Il comando seguente list-subscriptions-by-topic recupera un elenco di abbonamenti SNS associati all’argomento specificato.

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

Output:

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

L’esempio di codice seguente mostra come utilizzare list-subscriptions.

AWS CLI

Elencare le sottoscrizioni SNS

Nell’esempio list-subscriptions seguente viene mostrato un elenco delle sottoscrizioni SNS presenti nel tuo account AWS.

aws sns list-subscriptions

Output:

{ "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" } ] }
  • Per informazioni dettagliate sull’API, consulta ListSubscriptions nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare list-tags-for-resource.

AWS CLI

Come elencare i tag di un argomento

L’esempio list-tags-for-resource seguente elenca i tag per l’argomento Amazon SNS specificato.

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

Output:

{ "Tags": [ { "Key": "Team", "Value": "Alpha" } ] }
  • Per informazioni dettagliate sull'API, consulta ListTagsForResource nella Documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare list-topics.

AWS CLI

Elenco degli argomenti SNS

Nell’esempio list-topics seguente vengono elencati tutti gli argomenti SNS del tuo account AWS.

aws sns list-topics

Output:

{ "Topics": [ { "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic" } ] }
  • Per informazioni dettagliate sull’API, consulta ListTopics nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare opt-in-phone-number.

AWS CLI

Come attivare i messaggi SMS

Nell’esempio seguente opt-in-phone-number elenca i numeri di telefono per i quali sono abilitate le opzioni per la ricezione di SMS.

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

Questo comando non produce alcun output.

  • Per informazioni dettagliate sull’API, consulta OptInPhoneNumber in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare publish.

AWS CLI

Esempio 1: pubblicazione di un messaggio in un argomento

Nell’esempio publish viene pubblicato il messaggio indicato in un argomento SNS specificato. Il messaggio proviene da un file di testo che consente di includere interruzioni di riga.

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

Contenuto di message.txt.

Hello World Second Line

Output:

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

Esempio 2: pubblicare un messaggio SMS su un numero di telefono

Nell’esempio publish seguente viene pubblicato il messaggio Hello world! sul numero di telefono+1-555-555-0100.

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

Output:

{ "MessageId": "123a45b6-7890-12c3-45d6-333322221111" }
  • Per ulteriori informazioni sulle API, consulta Publish nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare put-data-protection-policy.

AWS CLI

Impostazione della policy di protezione dei dati

Esempio 1: impedire ai publisher di pubblicare messaggi con CreditCardNumber

L’esempio put-data-protection-policy seguente impedisce ai publisher di pubblicare messaggi con 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\":{}}}]}"

Questo comando non produce alcun output.

Esempio 2: caricare i parametri da un file

Il comando seguente put-data-protection-policy carica i parametri da un file.

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

Questo comando non produce alcun output.

L’esempio di codice seguente mostra come utilizzare remove-permission.

AWS CLI

Come rimuovere un’autorizzazione da un argomento

Nell’esempio seguente remove-permission rimuove l’autorizzazione Publish-Permission dall’argomento specificato.

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

Questo comando non produce alcun output.

  • Per i dettagli dell'API, consulta RemovePermission in Riferimento ai comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare set-endpoint-attributes.

AWS CLI

Come configurare gli attributi degli endpoint

L’esempio set-endpoint-attributes seguente disabilita l’endpoint dell’applicazione della piattaforma specificato.

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

Output:

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

L’esempio di codice seguente mostra come utilizzare set-platform-application-attributes.

AWS CLI

Come impostare gli attributi dell’applicazione della piattaforma

L’esempio set-platform-application-attributes seguente imposta l’attributo EventDeliveryFailure per l’applicazione di piattaforma specificata sull’ARN dell’argomento Amazon SNS specificato.

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

Questo comando non produce alcun output.

L’esempio di codice seguente mostra come utilizzare set-sms-attributes.

AWS CLI

Impostazione degli attributi dei messaggi SMS

Nell’esempio set-sms-attributes seguente l’ID mittente predefinito per i messaggi SMS viene impostato su MyName.

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

Questo comando non produce alcun output.

  • Per informazioni dettagliate sulle API, consulta SetSMSAttributes nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare set-subscription-attributes.

AWS CLI

Impostazione degli attributi della sottoscrizione

Nell’esempio set-subscription-attributes seguente viene impostato l’attributo RawMessageDelivery su una sottoscrizione 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

Questo comando non produce alcun output.

Nell’esempio set-subscription-attributes seguente viene impostato un attributo FilterPolicy su una sottoscrizione 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\"] }"

Questo comando non produce alcun output.

Nell’esempio set-subscription-attributes seguente viene rimosso l’attributo FilterPolicy su una sottoscrizione 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 "{}"

Questo comando non produce alcun output.

L’esempio di codice seguente mostra come utilizzare set-topic-attributes.

AWS CLI

Impostazione di un attributo per un argomento

Nell’esempio set-topic-attributes seguente vengono impostati gli attributi DisplayName per l’argomento specificato.

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

Questo comando non produce alcun output.

  • Per informazioni dettagliate sulle API, consulta SetTopicAttributes nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare subscribe.

AWS CLI

Effettuare la sottoscrizione a un argomento

Attraverso il comando subscribe seguente viene effettuata la sottoscrizione all’argomento specificato utilizzando un indirizzo e-mail.

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

Output:

{ "SubscriptionArn": "pending confirmation" }
  • Per informazioni dettagliate sulle API, consulta Subscribe nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare tag-resource.

AWS CLI

Aggiungere un tag a un argomento

Nell’esempio tag-resource seguente viene aggiunto un tag di metadati all’argomento Amazon SNS specificato.

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

Questo comando non produce alcun output.

  • Per informazioni dettagliate sulle API, consulta TagResource nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare unsubscribe.

AWS CLI

Annullamento della sottoscrizione a un argomento

Nell’esempio unsubscribe seguente viene eliminata la sottoscrizione specificata a un argomento.

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

Questo comando non produce alcun output.

  • Per informazioni dettagliate sulle API, consulta Unsubscribe nel Riferimento ai comandi AWS CLI.

L’esempio di codice seguente mostra come utilizzare untag-resource.

AWS CLI

Come rimuovere un tag da un argomento

L’esempio untag-resource seguente elimina qualsiasi tag con le chiavi specificate dall’argomento Amazon SNS specificato.

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

Questo comando non produce alcun output.

  • Per i dettagli dell'API, consulta UntagResource in Riferimento ai comandi della AWS CLI.

Scenari

L'esempio di codice seguente mostra come creare un endpoint di piattaforma per notifiche push di Amazon SNS.

AWS CLI

Creazione di un endpoint dell'applicazione della piattaforma

Nell’esempio create-platform-endpoint seguente viene creato un endpoint per l’applicazione della piattaforma indicata utilizzando il token specificato.

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

Output:

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