Publica mensajes en un SNS tema de Amazon con Step Functions - AWS Step Functions

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.

Publica mensajes en un SNS tema de Amazon con Step Functions

Aprende a usar Step Functions para publicar mensajes en un SNS tema de Amazon. En esta página se enumeran las SNS API acciones de Amazon admitidas y se proporcionan ejemplos de Task estados para publicar un mensaje en AmazonSNS.

Para obtener información sobre la integración con AWS servicios en Step Functions, consulte Integración de los servicios de yPasar parámetros a un servicio API en Step Functions.

Características clave de la SNS integración optimizada de Amazon

No hay optimizaciones para los patrones de integración Respuesta de la solicitud o Espera a que te devuelvan la llamada con el token de tarea.

A continuación se incluye un Task estado que publica en un tema de Amazon Simple Notification Service (AmazonSNS).

{ "StartAt": "Publish to SNS", "States": { "Publish to SNS": { "Type": "Task", "Resource": "arn:aws:states:::sns:publish", "Parameters": { "TopicArn": "arn:aws:sns:us-east-1:123456789012:myTopic", "Message.$": "$.input.message", "MessageAttributes": { "my_attribute_no_1": { "DataType": "String", "StringValue": "value of my_attribute_no_1" }, "my_attribute_no_2": { "DataType": "String", "StringValue": "value of my_attribute_no_2" } } }, "End": true } } }

Pasar valores dinámicos. Puede modificar el ejemplo anterior para transferir dinámicamente un atributo de esta JSON carga útil:

{ "input": { "message": "Hello world" }, "SNSDetails": { "attribute1": "some value", "attribute2": "some other value", } }

Anexa .$ al campo StringValue:

"MessageAttributes": { "my_attribute_no_1": { "DataType": "String", "StringValue.$": "$.SNSDetails.attribute1" }, "my_attribute_no_2": { "DataType": "String", "StringValue.$": "$.SNSDetails.attribute2" }

A continuación, se incluye un Task estado que se publica en un SNS tema de Amazon y, a continuación, espera a que se devuelva el token de la tarea. Consulte Espera a que te devuelvan la llamada con el token de tarea.

{ "StartAt":"Send message to SNS", "States":{ "Send message to SNS":{ "Type":"Task", "Resource":"arn:aws:states:::sns:publish.waitForTaskToken", "Parameters":{ "TopicArn":"arn:aws:sns:us-east-1:123456789012:myTopic", "Message":{ "Input.$":"$", "TaskToken.$":"$$.Task.Token" } }, "End":true } } }

Amazon compatible SNS APIs

Parámetros en Step Functions se expresan en PascalCase

Incluso si el servicio nativo API está encamelCase, por ejemplo, la API acciónstartSyncExecution, se especifican parámetros en PascalCase, como:StateMachineArn.

nota

Hay una cuota para el tamaño máximo de los datos de entrada o resultado para una tarea en Step Functions. Esto le limita a 256 KB de datos en una cadena codificada en UTF -8 cuando envía o recibe datos de otro servicio. Consulte Cuotas relacionadas con ejecuciones de máquinas de estado.

IAMpolíticas para llamar a Amazon SNS

En las siguientes plantillas de ejemplo se muestra cómo AWS Step Functions genera IAM políticas en función de los recursos de la definición de su máquina de estados. Para obtener más información, consulte Cómo Step Functions genera IAM políticas para servicios integrados y Descubra los patrones de integración de servicios en Step Functions.

Recursos estáticos

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:[[region]]:[[accountId]]:[[topicName]]" ] } ] }

Recursos basados en una ruta o publicación en TargetArn o PhoneNumber

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": "*" } ] }