Envío de mensajes a una cola de Amazon SQS
Puede enviar mensajes a una cola de Amazon SQS mediante las siguientes acciones de la API de Amazon SQS y un código de estado Task ejemplo para los flujos de trabajo de Step Functions.
Para obtener más información sobre la integración con los servicios de AWS en Step Functions, consulte Integración de los servicios de y Cómo pasar parámetros a una API de servicio en Step Functions.
Para obtener más información acerca de la recepción de mensajes en Amazon SQS, consulte Recepción y eliminación del mensaje en la Guía para desarrolladores de Amazon Simple Queue Service.
El ejemplo siguiente incluye un estado Task (JSONata) que envía un mensaje de Amazon Simple Queue Service (Amazon SQS) con MessageAttributes opcionales:
{
"StartAt": "Send to SQS",
"States": {
"Send to SQS": {
"Type": "Task",
"Resource": "arn:aws:states:::sqs:sendMessage",
"Arguments": {
"QueueUrl": "https://sqs.us-east-1.amazonaws.com/account-id/myQueue",
"MessageBody": "{% $states.input.message %}",
"MessageAttributes": {
"my_attribute_no_1": {
"DataType": "String",
"StringValue": "attribute1"
},
"my_attribute_no_2": {
"DataType": "String",
"StringValue": "attribute2"
}
}
},
"End": true
}
}
}La siguiente máquina de estado incluye un estado Task que publica en una cola de Amazon SQS y, a continuación, espera a que se devuelva el token de tarea. Consulte Cómo esperar una devolución de llamada con el token de tarea.
{
"StartAt":"Send message to SQS",
"States":{
"Send message to SQS":{
"Type":"Task",
"Resource":"arn:aws:states:::sqs:sendMessage.waitForTaskToken",
"Arguments":{
"QueueUrl":"https://sqs.us-east-1.amazonaws.com/account-id/myQueue",
"MessageBody":{
"Input" : "{% $states.input.message %}",
"MyTaskToken" : "{% $states.context.Task.Token %}"
}
},
"End":true
}
}
}
API optimizadas de Amazon SQS
Los parámetros en Step Functions se expresan en PascalCase
Incluso si la API del servicio nativo está en CamelCase, por ejemplo, la acción startSyncExecution de la API, se especifican parámetros en PascalCase, como: StateMachineArn.
Cuota para datos de entrada o de resultados
Al enviar o recibir datos entre servicios, la entrada o resultado máximo de una tarea es de 256 KiB de datos como cadena codificada en UTF-8. Consulte Cuotas relacionadas con ejecuciones de máquinas de estado.
Políticas de IAM para llamar a Amazon SQS
En estas plantillas de ejemplo, se muestra cómo AWS Step Functions genera políticas de IAM basadas en los recursos de la definición de la máquina de estado. Para obtener más información, consulte Generación de políticas de IAM para servicios integrados por Steps Functions y Descubrimiento de los patrones de integración de servicios en Step Functions.
Recursos estáticos
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": [ "arn:aws:sqs:us-east-1:123456789012:myQueueName" ] } ] }
Recursos dinámicos
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "*" } ] }