Publicación de mensajes en un tema de Amazon SNS mediante 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.

Publicación de mensajes en un tema de Amazon SNS mediante Step Functions

Aprenda a usar Step Functions para publicar mensajes en un tema de Amazon SNS. En esta página se enumeran las acciones de la API de Amazon SNS compatibles y se proporcionan estados Task de ejemplo para publicar mensajes en Amazon SNS.

Para obtener más información sobre la integración con AWS los servicios de Step Functions, consulte Integración de los servicios de yCómo pasar parámetros a una API de servicio en Step Functions.

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

No hay optimizaciones para los patrones de integración Respuesta de la solicitud o Cómo esperar una devolución de llamada con el token de tarea.

El ejemplo siguiente incluye un estado Task que publica en un tema de Amazon Simple Notification Service (Amazon SNS).

{ "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 pasar dinámicamente un atributo de esta carga de JSON:

{ "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" }

El siguiente ejemplo incluye un estado Task que publica en un tema de Amazon SNS 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 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 SNS optimizado APIs

Parámetros en Step Functions se expresan en PascalCase

Incluso si la API del servicio nativo está en CamelCase, por ejemplo, la startSyncExecution acción de la API, se especifican parámetros PascalCase en, 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 lo restringe a 256 KiB de datos como cadena codificada en UTF-8 cuando envía o recibe datos de otro servicio. Consulte Cuotas relacionadas con ejecuciones de máquinas de estado.

Políticas de IAM para llamar a Amazon SNS

En las siguientes plantillas de ejemplo, se muestra cómo se AWS Step Functions generan las políticas de IAM en función de los recursos de la definición de su máquina estatal. 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": [ "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": "*" } ] }