Ejemplos de Amazon SQS con herramientas para PowerShell - AWS Ejemplos de código de SDK

Hay más ejemplos de AWS SDK disponibles en el GitHub repositorio de ejemplos de AWS Doc SDK.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplos de Amazon SQS con herramientas para PowerShell

Los siguientes ejemplos de código muestran cómo realizar acciones e implementar escenarios comunes Herramientas de AWS para PowerShell con Amazon SQS.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

Acciones

En el siguiente ejemplo de código, se muestra cómo utilizar Add-SQSPermission.

Herramientas para PowerShell

Ejemplo 1: Este ejemplo permite Cuenta de AWS al especificado enviar mensajes desde la cola especificada.

Add-SQSPermission -Action SendMessage -AWSAccountId 80398EXAMPLE -Label SendMessagesFromMyQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
  • Para obtener más información sobre la API, consulte la referencia AddPermissionde Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Clear-SQSQueue.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo, se eliminan todos los mensajes de la cola especificada.

Clear-SQSQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
  • Para obtener información sobre la API, consulte PurgeQueuela referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Edit-SQSMessageVisibility.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo, se cambia el tiempo de espera de visibilidad del mensaje con el identificador de recibo especificado en la cola especificada a 10 horas (10 horas * 60 minutos * 60 segundos = 36000 segundos).

Edit-SQSMessageVisibility -QueueUrl https://sqs.us-east-1.amazonaws.com/8039EXAMPLE/MyQueue -ReceiptHandle AQEBgGDh...J/Iqww== -VisibilityTimeout 36000
  • Para obtener información sobre la API, consulte ChangeMessageVisibilityla referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Edit-SQSMessageVisibilityBatch.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo, se cambia el tiempo de espera de visibilidad de 2 mensajes con los identificadores de recibo especificado en la cola especificada. El valor de visibilidad del tiempo de espera del primer mensaje se cambia a 10 horas (10 horas * 60 minutos * 60 segundos = 36000 segundos). El valor de visibilidad del tiempo de espera del segundo mensaje se cambia a 5 horas (5 horas * 60 minutos * 60 segundos = 18000 segundos).

$changeVisibilityRequest1 = New-Object Amazon.SQS.Model.ChangeMessageVisibilityBatchRequestEntry $changeVisibilityRequest1.Id = "Request1" $changeVisibilityRequest1.ReceiptHandle = "AQEBd329...v6gl8Q==" $changeVisibilityRequest1.VisibilityTimeout = 36000 $changeVisibilityRequest2 = New-Object Amazon.SQS.Model.ChangeMessageVisibilityBatchRequestEntry $changeVisibilityRequest2.Id = "Request2" $changeVisibilityRequest2.ReceiptHandle = "AQEBgGDh...J/Iqww==" $changeVisibilityRequest2.VisibilityTimeout = 18000 Edit-SQSMessageVisibilityBatch -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue -Entry $changeVisibilityRequest1, $changeVisibilityRequest2

Salida:

Failed Successful ------ ---------- {} {Request2, Request1}
  • Para obtener información sobre la API, consulte ChangeMessageVisibilityBatchla referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Get-SQSDeadLetterSourceQueue.

Herramientas para PowerShell

Ejemplo 1: En este ejemplo se enumeran todas URLs las colas que se basan en la cola especificada como cola de cartas muertas.

Get-SQSDeadLetterSourceQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue

Salida:

https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyOtherQueue
  • Para obtener más información sobre la API, consulte la referencia de ListDeadLetterSourceQueuescmdlets Herramientas de AWS para PowerShell .

En el siguiente ejemplo de código, se muestra cómo utilizar Get-SQSQueue.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo, se enumeran todas las colas.

Get-SQSQueue

Salida:

https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/AnotherQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/DeadLetterQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyOtherQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue

Ejemplo 2: en este ejemplo se enumeran todas las colas que empiezan con el nombre especificado.

Get-SQSQueue -QueueNamePrefix My

Salida:

https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyOtherQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueue
  • Para obtener información sobre la API, consulte ListQueuesla referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Get-SQSQueueAttribute.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo se enumeran todos los atributos de la cola especificada.

Get-SQSQueueAttribute -AttributeName All -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue

Salida:

VisibilityTimeout : 30 DelaySeconds : 0 MaximumMessageSize : 262144 MessageRetentionPeriod : 345600 ApproximateNumberOfMessages : 0 ApproximateNumberOfMessagesNotVisible : 0 ApproximateNumberOfMessagesDelayed : 0 CreatedTimestamp : 2/11/2015 5:53:35 PM LastModifiedTimestamp : 12/29/2015 2:23:17 PM QueueARN : arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue Policy : {"Version":"2008-10-17","Id":"arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue/SQSDefaultPolicy","Statement":[{"Sid":"Sid14 495134224EX","Effect":"Allow","Principal":{"AWS":"*"},"Action":"SQS:SendMessage","Resource":"arn:aws:sqs:us-east-1:80 398EXAMPLE:MyQueue","Condition":{"ArnEquals":{"aws:SourceArn":"arn:aws:sns:us-east-1:80398EXAMPLE:MyTopic"}}},{"Sid": "SendMessagesFromMyQueue","Effect":"Allow","Principal":{"AWS":"80398EXAMPLE"},"Action":"SQS:SendMessage","Resource":" arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue"}]} Attributes : {[QueueArn, arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue], [ApproximateNumberOfMessages, 0], [ApproximateNumberOfMessagesNotVisible, 0], [ApproximateNumberOfMessagesDelayed, 0]...}

Ejemplo 2: en este ejemplo se enumeran de forma separada solo los atributos de la cola especificada.

Get-SQSQueueAttribute -AttributeName MaximumMessageSize, VisibilityTimeout -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue

Salida:

VisibilityTimeout : 30 DelaySeconds : 0 MaximumMessageSize : 262144 MessageRetentionPeriod : 345600 ApproximateNumberOfMessages : 0 ApproximateNumberOfMessagesNotVisible : 0 ApproximateNumberOfMessagesDelayed : 0 CreatedTimestamp : 2/11/2015 5:53:35 PM LastModifiedTimestamp : 12/29/2015 2:23:17 PM QueueARN : arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue Policy : {"Version":"2008-10-17","Id":"arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue/SQSDefaultPolicy","Statement":[{"Sid":"Sid14 495134224EX","Effect":"Allow","Principal":{"AWS":"*"},"Action":"SQS:SendMessage","Resource":"arn:aws:sqs:us-east-1:80 398EXAMPLE:MyQueue","Condition":{"ArnEquals":{"aws:SourceArn":"arn:aws:sns:us-east-1:80398EXAMPLE:MyTopic"}}},{"Sid": "SendMessagesFromMyQueue","Effect":"Allow","Principal":{"AWS":"80398EXAMPLE"},"Action":"SQS:SendMessage","Resource":" arn:aws:sqs:us-east-1:80398EXAMPLE:MyQueue"}]} Attributes : {[MaximumMessageSize, 262144], [VisibilityTimeout, 30]}
  • Para obtener información sobre la API, consulte GetQueueAttributesla referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Get-SQSQueueUrl.

Herramientas para PowerShell

Ejemplo 1: En este ejemplo se muestra la URL de la cola con el nombre especificado.

Get-SQSQueueUrl -QueueName MyQueue

Salida:

https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
  • Para obtener información sobre la API, consulte GetQueueUrlla referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar New-SQSQueue.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo se crea una cola con el nombre especificado.

New-SQSQueue -QueueName MyQueue

Salida:

https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
  • Para obtener información sobre la API, consulte CreateQueuela referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Receive-SQSMessage.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo se muestra la información de los 10 mensajes siguientes que se van a recibir en la cola especificada. La información contendrá valores para los atributos del mensaje especificado, si existen.

Receive-SQSMessage -AttributeName SenderId, SentTimestamp -MessageAttributeName StudentName, StudentGrade -MessageCount 10 -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue

Salida:

Attributes : {[SenderId, AIDAIAZKMSNQ7TEXAMPLE], [SentTimestamp, 1451495923744]} Body : Information about John Doe's grade. MD5OfBody : ea572796e3c231f974fe75d89EXAMPLE MD5OfMessageAttributes : 48c1ee811f0fe7c4e88fbe0f5EXAMPLE MessageAttributes : {[StudentGrade, Amazon.SQS.Model.MessageAttributeValue], [StudentName, Amazon.SQS.Model.MessageAttributeValue]} MessageId : 53828c4b-631b-469b-8833-c093cEXAMPLE ReceiptHandle : AQEBpfGp...20Q5cg==
  • Para obtener información sobre la API, consulte ReceiveMessagela referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Remove-SQSMessage.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo, se elimina el mensaje con el identificador de recibo especificado de la cola especificada.

Remove-SQSMessage -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue -ReceiptHandle AQEBd329...v6gl8Q==
  • Para obtener información sobre la API, consulte DeleteMessagela referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Remove-SQSMessageBatch.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo, se eliminan 2 mensajes con los identificadores de recibo especificado de la cola especificada.

$deleteMessageRequest1 = New-Object Amazon.SQS.Model.DeleteMessageBatchRequestEntry $deleteMessageRequest1.Id = "Request1" $deleteMessageRequest1.ReceiptHandle = "AQEBX2g4...wtJSQg==" $deleteMessageRequest2 = New-Object Amazon.SQS.Model.DeleteMessageBatchRequestEntry $deleteMessageRequest2.Id = "Request2" $deleteMessageRequest2.ReceiptHandle = "AQEBqOVY...KTsLYg==" Remove-SQSMessageBatch -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue -Entry $deleteMessageRequest1, $deleteMessageRequest2

Salida:

Failed Successful ------ ---------- {} {Request1, Request2}
  • Para obtener información sobre la API, consulte DeleteMessageBatchla referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Remove-SQSPermission.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo, se quita el permiso con la etiqueta especificada de la cola indicada.

Remove-SQSPermission -Label SendMessagesFromMyQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
  • Para obtener información sobre la API, consulte RemovePermissionla referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Remove-SQSQueue.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo, se elimina la cola especificada.

Remove-SQSQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
  • Para obtener información sobre la API, consulte DeleteQueuela referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Send-SQSMessage.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo se envía un mensaje con los atributos y el cuerpo del mensaje especificados a la cola especificada, con un retraso de 10 segundos en la entrega del mensaje.

$cityAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $cityAttributeValue.DataType = "String" $cityAttributeValue.StringValue = "AnyCity" $populationAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $populationAttributeValue.DataType = "Number" $populationAttributeValue.StringValue = "1250800" $messageAttributes = New-Object System.Collections.Hashtable $messageAttributes.Add("City", $cityAttributeValue) $messageAttributes.Add("Population", $populationAttributeValue) Send-SQSMessage -DelayInSeconds 10 -MessageAttributes $messageAttributes -MessageBody "Information about the largest city in Any Region." -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue

Salida:

MD5OfMessageAttributes MD5OfMessageBody MessageId ---------------------- ---------------- --------- 1d3e51347bc042efbdf6dda31EXAMPLE 51b0a3256d59467f973009b73EXAMPLE c35fed8f-c739-4d0c-818b-1820eEXAMPLE
  • Para obtener información sobre la API, consulte SendMessagela referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Send-SQSMessageBatch.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo, se envían 2 mensajes con los atributos y los cuerpos de los mensajes especificados a la cola especificada. La entrega se retrasa 15 segundos para el primer mensaje y 10 segundos para el segundo mensaje.

$student1NameAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $student1NameAttributeValue.DataType = "String" $student1NameAttributeValue.StringValue = "John Doe" $student1GradeAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $student1GradeAttributeValue.DataType = "Number" $student1GradeAttributeValue.StringValue = "89" $student2NameAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $student2NameAttributeValue.DataType = "String" $student2NameAttributeValue.StringValue = "Jane Doe" $student2GradeAttributeValue = New-Object Amazon.SQS.Model.MessageAttributeValue $student2GradeAttributeValue.DataType = "Number" $student2GradeAttributeValue.StringValue = "93" $message1 = New-Object Amazon.SQS.Model.SendMessageBatchRequestEntry $message1.DelaySeconds = 15 $message1.Id = "FirstMessage" $message1.MessageAttributes.Add("StudentName", $student1NameAttributeValue) $message1.MessageAttributes.Add("StudentGrade", $student1GradeAttributeValue) $message1.MessageBody = "Information about John Doe's grade." $message2 = New-Object Amazon.SQS.Model.SendMessageBatchRequestEntry $message2.DelaySeconds = 10 $message2.Id = "SecondMessage" $message2.MessageAttributes.Add("StudentName", $student2NameAttributeValue) $message2.MessageAttributes.Add("StudentGrade", $student2GradeAttributeValue) $message2.MessageBody = "Information about Jane Doe's grade." Send-SQSMessageBatch -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue -Entry $message1, $message2

Salida:

Failed Successful ------ ---------- {} {FirstMessage, SecondMessage}
  • Para obtener información sobre la API, consulte SendMessageBatchla referencia de Herramientas de AWS para PowerShell cmdlets.

En el siguiente ejemplo de código, se muestra cómo utilizar Set-SQSQueueAttribute.

Herramientas para PowerShell

Ejemplo 1: en este ejemplo se muestra cómo establecer una política para suscribirse una cola a un tema de SNS. Cuando se publica un mensaje en un tema, se envía a la cola suscritas.

# create the queue and topic to be associated $qurl = New-SQSQueue -QueueName "myQueue" $topicarn = New-SNSTopic -Name "myTopic" # get the queue ARN to inject into the policy; it will be returned # in the output's QueueARN member but we need to put it into a variable # so text expansion in the policy string takes effect $qarn = (Get-SQSQueueAttribute -QueueUrl $qurl -AttributeName "QueueArn").QueueARN # construct the policy and inject arns $policy = @" { "Version": "2008-10-17", "Id": "$qarn/SQSPOLICY", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": "*", "Action": "SQS:SendMessage", "Resource": "$qarn", "Condition": { "ArnEquals": { "aws:SourceArn": "$topicarn" } } } ] } "@ # set the policy Set-SQSQueueAttribute -QueueUrl $qurl -Attribute @{ Policy=$policy }

Ejemplo 2: en este ejemplo se establecen los atributos especificados de la cola especificada.

Set-SQSQueueAttribute -Attribute @{"DelaySeconds" = "10"; "MaximumMessageSize" = "131072"} -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue
  • Para obtener información sobre la API, consulte SetQueueAttributesla referencia de Herramientas de AWS para PowerShell cmdlets.