Se ha publicado la versión 5 (V5) de Herramientas de AWS para PowerShell.
Para empezar a utilizar la nueva versión de Tools para PowerShell, consulte la Guía del usuario de Herramientas de AWS para PowerShell (V5), especialmente el tema sobre la Migración a la V5.
Ejemplos de Amazon SQS con las Herramientas para PowerShell V4
En los siguientes ejemplos de código se muestra cómo realizar acciones e implementar escenarios comunes usando Herramientas de AWS para PowerShell V4 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.
Temas
Acciones
En el siguiente ejemplo de código, se muestra cómo utilizar Add-SQSPermission.
- Herramientas para PowerShell V4
-
Ejemplo 1: Este ejemplo permite a la Cuenta de AWS especificada 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 información sobre la API, consulte AddPermission en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Clear-SQSQueue.
- Herramientas para PowerShell V4
-
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 PurgeQueue en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Edit-SQSMessageVisibility.
- Herramientas para PowerShell V4
-
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 ChangeMessageVisibility en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Edit-SQSMessageVisibilityBatch.
- Herramientas para PowerShell V4
-
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, $changeVisibilityRequest2Salida:
Failed Successful ------ ---------- {} {Request2, Request1}-
Para obtener información sobre la API, consulte ChangeMessageVisibilityBatch en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Get-SQSDeadLetterSourceQueue.
- Herramientas para PowerShell V4
-
Ejemplo 1: en este ejemplo se muestran las direcciones URL de todas las colas que utilizan la cola especificada como cola de mensajes fallidos.
Get-SQSDeadLetterSourceQueue -QueueUrl https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyDeadLetterQueueSalida:
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyOtherQueue-
Para obtener información sobre la API, consulte ListDeadLetterSourceQueues en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Get-SQSQueue.
- Herramientas para PowerShell V4
-
Ejemplo 1: en este ejemplo, se enumeran todas las colas.
Get-SQSQueueSalida:
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/MyDeadLetterQueueEjemplo 2: en este ejemplo se enumeran todas las colas que empiezan con el nombre especificado.
Get-SQSQueue -QueueNamePrefix MySalida:
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 ListQueues en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Get-SQSQueueAttribute.
- Herramientas para PowerShell V4
-
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/MyQueueSalida:
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":"2012-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/MyQueueSalida:
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":"2012-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 GetQueueAttributes en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Get-SQSQueueUrl.
- Herramientas para PowerShell V4
-
Ejemplo 1: En este ejemplo se muestra la URL de la cola con el nombre especificado.
Get-SQSQueueUrl -QueueName MyQueueSalida:
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue-
Para obtener información sobre la API, consulte GetQueueUrl en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar New-SQSQueue.
- Herramientas para PowerShell V4
-
Ejemplo 1: en este ejemplo se crea una cola con el nombre especificado.
New-SQSQueue -QueueName MyQueueSalida:
https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyQueue-
Para obtener información sobre la API, consulte CreateQueue en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Receive-SQSMessage.
- Herramientas para PowerShell V4
-
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/MyQueueSalida:
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 ReceiveMessage en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Remove-SQSMessage.
- Herramientas para PowerShell V4
-
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 DeleteMessage en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Remove-SQSMessageBatch.
- Herramientas para PowerShell V4
-
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, $deleteMessageRequest2Salida:
Failed Successful ------ ---------- {} {Request1, Request2}-
Para obtener información sobre la API, consulte DeleteMessageBatch en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Remove-SQSPermission.
- Herramientas para PowerShell V4
-
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 RemovePermission en la Referencia de Cmdlet de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Remove-SQSQueue.
- Herramientas para PowerShell V4
-
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 DeleteQueue en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Send-SQSMessage.
- Herramientas para PowerShell V4
-
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/MyQueueSalida:
MD5OfMessageAttributes MD5OfMessageBody MessageId ---------------------- ---------------- --------- 1d3e51347bc042efbdf6dda31EXAMPLE 51b0a3256d59467f973009b73EXAMPLE c35fed8f-c739-4d0c-818b-1820eEXAMPLE-
Para obtener información sobre la API, consulte SendMessage en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Send-SQSMessageBatch.
- Herramientas para PowerShell V4
-
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, $message2Salida:
Failed Successful ------ ---------- {} {FirstMessage, SecondMessage}-
Para obtener información sobre la API, consulte SendMessageBatch en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
En el siguiente ejemplo de código, se muestra cómo utilizar Set-SQSQueueAttribute.
- Herramientas para PowerShell V4
-
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":"2012-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 SetQueueAttributes en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-