Esempi per Amazon SQS con AWS CLI - Esempi di codice per SDK AWS

Sono disponibili altri esempi per SDK AWS nel repository GitHub della documentazione degli esempi per SDK AWS.

Esempi per Amazon SQS con AWS CLI

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

Le azioni 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.

Ogni esempio include un link al codice sorgente completo, in cui vengono fornite le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Azioni

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

AWS CLI

Come aggiungere le autorizzazioni a una coda

Questo esempio consente all’account AWS specificato di inviare messaggi alla coda specificata.

Comando:

aws sqs add-permission --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --label SendMessagesFromMyQueue --aws-account-ids 12345EXAMPLE --actions SendMessage

Output:

None.
  • Per informazioni dettagliate sull’API, consulta AddPermission nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare cancel-message-move-task.

AWS CLI

Come annullare un’operazione di spostamento di un messaggio

L’esempio cancel-message-move-task seguente annulla l’attività di spostamento del messaggio specificata.

aws sqs cancel-message-move-task \ --task-handle AQEB6nR4...HzlvZQ==

Output:

{ "ApproximateNumberOfMessagesMoved": 102 }

Per ulteriori informazioni consulta Autorizzazioni API Amazon SQS: riferimento a operazioni e risorse nella Guida per gli sviluppatori.

  • Per informazioni dettagliate sull’API, consulta CancelMessageMoveTask nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare change-message-visibility-batch.

AWS CLI

Come modificare la visibilità del timeout di più messaggi come batch

Questo esempio modifica la visibilità del timeout dei 2 messaggi specificati impostandola su 10 ore (10 ore * 60 minuti * 60 secondi).

Comando:

aws sqs change-message-visibility-batch --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --entries file://change-message-visibility-batch.json

File di input (change-message-visibility-batch.json):

[ { "Id": "FirstMessage", "ReceiptHandle": "AQEBhz2q...Jf3kaw==", "VisibilityTimeout": 36000 }, { "Id": "SecondMessage", "ReceiptHandle": "AQEBkTUH...HifSnw==", "VisibilityTimeout": 36000 } ]

Output:

{ "Successful": [ { "Id": "SecondMessage" }, { "Id": "FirstMessage" } ] }
  • Per informazioni dettagliate sull’API, consulta ChangeMessageVisibilityBatch nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare change-message-visibility.

AWS CLI

Come modificare la visibilità del timeout di un messaggio

Questo esempio modifica la visibilità del timeout del messaggio specificato impostandola su 10 ore (10 ore * 60 minuti * 60 secondi).

Comando:

aws sqs change-message-visibility --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --receipt-handle AQEBTpyI...t6HyQg== --visibility-timeout 36000

Output:

None.
  • Per informazioni dettagliate sull’API, consulta ChangeMessageVisibility nella documentazione di riferimento dei comandi della AWS CLI.

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

AWS CLI

Come creare una coda

Questo esempio crea una coda con il nome specificato, imposta il periodo di conservazione dei messaggi su 3 giorni (3 giorni * 24 ore * 60 minuti * 60 secondi) e imposta la coda DLQ della coda sulla coda specificata con un conteggio massimo di ricezione pari a 1.000 messaggi.

Comando:

aws sqs create-queue --queue-name MyQueue --attributes file://create-queue.json

File di input (create-queue.json):

{ "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyDeadLetterQueue\",\"maxReceiveCount\":\"1000\"}", "MessageRetentionPeriod": "259200" }

Output:

{ "QueueUrl": "https://queue.amazonaws.com/80398EXAMPLE/MyQueue" }
  • Per informazioni dettagliate sull’API, consulta CreateQueue nella documentazione di riferimento dei comandi della AWS CLI.

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

AWS CLI

Come eliminare più messaggi in batch

Questo esempio elimina i messaggi specificati.

Comando:

aws sqs delete-message-batch --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --entries file://delete-message-batch.json

File di input (delete-message-batch.json):

[ { "Id": "FirstMessage", "ReceiptHandle": "AQEB1mgl...Z4GuLw==" }, { "Id": "SecondMessage", "ReceiptHandle": "AQEBLsYM...VQubAA==" } ]

Output:

{ "Successful": [ { "Id": "FirstMessage" }, { "Id": "SecondMessage" } ] }
  • Per informazioni dettagliate sull’API, consulta DeleteMessageBatch nella documentazione di riferimento dei comandi della AWS CLI.

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

AWS CLI

Come eliminare un messaggio

Questo esempio elimina il messaggio specificato.

Comando:

aws sqs delete-message --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --receipt-handle AQEBRXTo...q2doVA==

Output:

None.
  • Per informazioni dettagliate sull’API, consulta DeleteMessage nella documentazione di riferimento dei comandi della AWS CLI.

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

AWS CLI

Come eliminare una coda

Questo esempio elimina la coda specificata.

Comando:

aws sqs delete-queue --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewerQueue

Output:

None.
  • Per informazioni dettagliate sull’API, consulta DeleteQueue nella documentazione di riferimento dei comandi della AWS CLI.

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

AWS CLI

Come ottenere gli attributi di una coda

Questo esempio ottiene tutti gli attributi della coda specificata.

Comando:

aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --attribute-names All

Output:

{ "Attributes": { "ApproximateNumberOfMessagesNotVisible": "0", "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyDeadLetterQueue\",\"maxReceiveCount\":1000}", "MessageRetentionPeriod": "345600", "ApproximateNumberOfMessagesDelayed": "0", "MaximumMessageSize": "262144", "CreatedTimestamp": "1442426968", "ApproximateNumberOfMessages": "0", "ReceiveMessageWaitTimeSeconds": "0", "DelaySeconds": "0", "VisibilityTimeout": "30", "LastModifiedTimestamp": "1442426968", "QueueArn": "arn:aws:sqs:us-east-1:80398EXAMPLE:MyNewQueue" } }

Questo esempio ottiene solo la dimensione massima dei messaggi e gli attributi di timeout della visibilità per la coda specificata.

Comando:

aws sqs get-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue --attribute-names MaximumMessageSize VisibilityTimeout

Output:

{ "Attributes": { "VisibilityTimeout": "30", "MaximumMessageSize": "262144" } }
  • Per informazioni dettagliate sull’API, consulta GetQueueAttributes nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare get-queue-url.

AWS CLI

Come ottenere l’URL di una coda

Questo esempio ottiene l’URL della coda specificata.

Comando:

aws sqs get-queue-url --queue-name MyQueue

Output:

{ "QueueUrl": "https://queue.amazonaws.com/80398EXAMPLE/MyQueue" }
  • Per informazioni dettagliate sull’API, consulta GetQueueUrl nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare list-dead-letter-source-queues.

AWS CLI

Come elencare le code DLQ di origine

Questo esempio elenca le code associate alla coda DLQ di origine specificata.

Comando:

aws sqs list-dead-letter-source-queues --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue

Output:

{ "queueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue" ] }
  • Per informazioni dettagliate sull’API, consulta ListDeadLetterSourceQueues nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare list-message-move-tasks.

AWS CLI

Come elencare le attività di spostamento dei messaggi

L’esempio list-message-move-tasks seguente elenca le 2 attività di spostamento dei messaggi più recenti nella coda specificata.

aws sqs list-message-move-tasks \ --source-arn arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue \ --max-results 2

Output:

{ "Results": [ { "TaskHandle": "AQEB6nR4...HzlvZQ==", "Status": "RUNNING", "SourceArn": "arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue1", "DestinationArn": "arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue2", "MaxNumberOfMessagesPerSecond": 50, "ApproximateNumberOfMessagesMoved": 203, "ApproximateNumberOfMessagesToMove": 30, "StartedTimestamp": 1442428276921 }, { "Status": "COMPLETED", "SourceArn": "arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue1", "DestinationArn": "arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue2", "ApproximateNumberOfMessagesMoved": 29, "ApproximateNumberOfMessagesToMove": 0, "StartedTimestamp": 1342428272093 } ] }

Per ulteriori informazioni consulta Autorizzazioni API Amazon SQS: riferimento a operazioni e risorse nella Guida per gli sviluppatori.

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

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

AWS CLI

Come elencare tutti i tag di allocazione dei costi per una coda

L’esempio list-queue-tags seguente visualizza tutti i tag di allocazione dei costi associati alla coda specificata.

aws sqs list-queue-tags \ --queue-url https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue

Output:

{ "Tags": { "Team": "Alpha" } }

Per ulteriori informazioni, consulta Elenco dei tag di allocazione dei costi nella Guida per sviluppatori di Amazon Simple Queue Service.

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

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

AWS CLI

Come elencare le code

Questo esempio elenca tutte le code.

Comando:

aws sqs list-queues

Output:

{ "QueueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue", "https://queue.amazonaws.com/80398EXAMPLE/TestQueue1", "https://queue.amazonaws.com/80398EXAMPLE/TestQueue2" ] }

Questo esempio elenca solo le code che iniziano con “My”.

Comando:

aws sqs list-queues --queue-name-prefix My

Output:

{ "QueueUrls": [ "https://queue.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyQueue", "https://queue.amazonaws.com/80398EXAMPLE/MyOtherQueue" ] }
  • Per informazioni dettagliate sull’API, consulta ListQueues nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare purge-queue.

AWS CLI

Come rimuovere una coda

Questo esempio elimina tutti i messaggi nella coda specificata.

Comando:

aws sqs purge-queue --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue

Output:

None.
  • Per informazioni dettagliate sull’API, consulta PurgeQueue nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare receive-message.

AWS CLI

Come ricevere un messaggio

Questo esempio riceve fino a 10 messaggi disponibili e restituisce tutti gli attributi disponibili.

Comando:

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --attribute-names All --message-attribute-names All --max-number-of-messages 10

Output:

{ "Messages": [ { "Body": "My first message.", "ReceiptHandle": "AQEBzbVv...fqNzFw==", "MD5OfBody": "1000f835...a35411fa", "MD5OfMessageAttributes": "9424c491...26bc3ae7", "MessageId": "d6790f8d-d575-4f01-bc51-40122EXAMPLE", "Attributes": { "ApproximateFirstReceiveTimestamp": "1442428276921", "SenderId": "AIDAIAZKMSNQ7TEXAMPLE", "ApproximateReceiveCount": "5", "SentTimestamp": "1442428276921" }, "MessageAttributes": { "PostalCode": { "DataType": "String", "StringValue": "ABC123" }, "City": { "DataType": "String", "StringValue": "Any City" } } } ] }

Questo esempio riceve il successivo messaggio disponibile e restituisce solo gli attributi SenderId e SentTimestamp e l’attributo PostalCode del messaggio.

Comando:

aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --attribute-names SenderId SentTimestamp --message-attribute-names PostalCode

Output:

{ "Messages": [ { "Body": "My first message.", "ReceiptHandle": "AQEB6nR4...HzlvZQ==", "MD5OfBody": "1000f835...a35411fa", "MD5OfMessageAttributes": "b8e89563...e088e74f", "MessageId": "d6790f8d-d575-4f01-bc51-40122EXAMPLE", "Attributes": { "SenderId": "AIDAIAZKMSNQ7TEXAMPLE", "SentTimestamp": "1442428276921" }, "MessageAttributes": { "PostalCode": { "DataType": "String", "StringValue": "ABC123" } } } ] }
  • Per informazioni dettagliate sull’API, consulta ReceiveMessage nella documentazione di riferimento dei comandi della AWS CLI.

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

AWS CLI

Come rimuovere un’autorizzazione

Questo esempio rimuove l’autorizzazione con l’etichetta specificata dalla coda specificata.

Comando:

aws sqs remove-permission --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --label SendMessagesFromMyQueue

Output:

None.
  • Per informazioni dettagliate sull’API, consulta RemovePermission nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare send-message-batch.

AWS CLI

Come inviare più messaggi in batch

Questo esempio invia alla coda specificata 2 messaggi con il corpo del messaggio, il periodo di ritardo e gli attributi del messaggio specificati.

Comando:

aws sqs send-message-batch --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --entries file://send-message-batch.json

File di input (send-message-batch.json):

[ { "Id": "FuelReport-0001-2015-09-16T140731Z", "MessageBody": "Fuel report for account 0001 on 2015-09-16 at 02:07:31 PM.", "DelaySeconds": 10, "MessageAttributes": { "SellerName": { "DataType": "String", "StringValue": "Example Store" }, "City": { "DataType": "String", "StringValue": "Any City" }, "Region": { "DataType": "String", "StringValue": "WA" }, "PostalCode": { "DataType": "String", "StringValue": "99065" }, "PricePerGallon": { "DataType": "Number", "StringValue": "1.99" } } }, { "Id": "FuelReport-0002-2015-09-16T140930Z", "MessageBody": "Fuel report for account 0002 on 2015-09-16 at 02:09:30 PM.", "DelaySeconds": 10, "MessageAttributes": { "SellerName": { "DataType": "String", "StringValue": "Example Fuels" }, "City": { "DataType": "String", "StringValue": "North Town" }, "Region": { "DataType": "String", "StringValue": "WA" }, "PostalCode": { "DataType": "String", "StringValue": "99123" }, "PricePerGallon": { "DataType": "Number", "StringValue": "1.87" } } } ]

Output:

{ "Successful": [ { "MD5OfMessageBody": "203c4a38...7943237e", "MD5OfMessageAttributes": "10809b55...baf283ef", "Id": "FuelReport-0001-2015-09-16T140731Z", "MessageId": "d175070c-d6b8-4101-861d-adeb3EXAMPLE" }, { "MD5OfMessageBody": "2cf0159a...c1980595", "MD5OfMessageAttributes": "55623928...ae354a25", "Id": "FuelReport-0002-2015-09-16T140930Z", "MessageId": "f9b7d55d-0570-413e-b9c5-a9264EXAMPLE" } ] }
  • Per informazioni dettagliate sull’API, consulta SendMessageBatch nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare send-message.

AWS CLI

Come inviare un messaggio

Questo esempio invia alla coda specificata un messaggio con il corpo del messaggio, il periodo di ritardo e gli attributi del messaggio specificato.

Comando:

aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue --message-body "Information about the largest city in Any Region." --delay-seconds 10 --message-attributes file://send-message.json

File di input (send-message.json):

{ "City": { "DataType": "String", "StringValue": "Any City" }, "Greeting": { "DataType": "Binary", "BinaryValue": "Hello, World!" }, "Population": { "DataType": "Number", "StringValue": "1250800" } }

Output:

{ "MD5OfMessageBody": "51b0a325...39163aa0", "MD5OfMessageAttributes": "00484c68...59e48f06", "MessageId": "da68f62c-0c07-4bee-bf5f-7e856EXAMPLE" }
  • Per informazioni dettagliate sull’API, consulta SendMessage nella documentazione di riferimento dei comandi della AWS CLI.

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

AWS CLI

Come impostare gli attributi della coda

Questo esempio imposta la coda specificata su un ritardo di distribuzione di 10 secondi, una dimensione massima del messaggio di 128 KB (128 KB * 1.024 byte), un periodo di conservazione dei messaggi di 3 giorni (3 giorni * 24 ore * 60 minuti * 60 secondi), un tempo di attesa per la ricezione dei messaggi di 20 secondi e un timeout di visibilità predefinito di 60 secondi. Questo esempio associa inoltre la coda DLQ specificata a un numero massimo di ricezione di 1.000 messaggi.

Comando:

aws sqs set-queue-attributes --queue-url https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyNewQueue --attributes file://set-queue-attributes.json

File di input (set-queue-attributes.json):

{ "DelaySeconds": "10", "MaximumMessageSize": "131072", "MessageRetentionPeriod": "259200", "ReceiveMessageWaitTimeSeconds": "20", "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyDeadLetterQueue\",\"maxReceiveCount\":\"1000\"}", "VisibilityTimeout": "60" }

Output:

None.
  • Per informazioni dettagliate sull’API, consulta SetQueueAttributes nella documentazione di riferimento dei comandi della AWS CLI.

L’esempio di codice seguente mostra come utilizzare start-message-move-task.

AWS CLI

Esempio 1: *come avviare un’attività di spostamento di messaggi*

L’esempio start-message-move-task seguente avvia un’operazione di spostamento dei messaggi per reindirizzare i messaggi dalla coda DLQ specificata alla coda di origine.

aws sqs start-message-move-task \ --source-arn arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue

Output:

{ "TaskHandle": "AQEB6nR4...HzlvZQ==" }

Per ulteriori informazioni, consulta il seguente argomento in questa guida.

Esempio 2: *come avviare un’attività di spostamento di messaggi con una frequenza massima*

L’esempio start-message-move-task seguente avvia un’attività di spostamento dei messaggi per reindirizzare i messaggi dalla coda DLQ specificata alla coda di destinazione specificata a una velocità massima di 50 messaggi al secondo.

aws sqs start-message-move-task \ --source-arn arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue1 \ --destination-arn arn:aws:sqs:us-west-2:80398EXAMPLE:MyQueue2 \ --max-number-of-messages-per-second 50

Output:

{ "TaskHandle": "AQEB6nR4...HzlvZQ==" }

Per ulteriori informazioni consulta Autorizzazioni API Amazon SQS: riferimento a operazioni e risorse nella Guida per gli sviluppatori.

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

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

AWS CLI

Come aggiungere tag di allocazione dei costi a una coda

L’esempio tag-queue seguente aggiunge un tag di allocazione dei costi alla coda Amazon SQS specificata.

aws sqs tag-queue \ --queue-url https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue \ --tags Priority=Highest

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Aggiunta di tag per l’allocazione dei costi nella Guida per gli sviluppatori di Amazon Simple Queue Service.

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

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

AWS CLI

Come rimuovere i tag di allocazione dei costi da una coda

L’esempio untag-queue seguente rimuove un tag di allocazione dei costi dalla coda Amazon SQS specificata.

aws sqs untag-queue \ --queue-url https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue \ --tag-keys "Priority"

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta Aggiunta di tag per l’allocazione dei costi nella Guida per gli sviluppatori di Amazon Simple Queue Service.

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