Gestione AWS Step Functions las ejecuciones como un servicio integrado - 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.

Gestione AWS Step Functions las ejecuciones como un servicio integrado

Step Functions se integra con su propia API como integración de servicios. Esto permite a Step Functions iniciar una nueva ejecución de una máquina de estado directamente desde el estado de la tarea de una ejecución en curso. Al crear nuevos flujos de trabajo, utilice las ejecuciones de flujos de trabajo anidados para reducir la complejidad de los flujos de trabajo principales y para reutilizar los procesos comunes.

En qué se diferencia la integración optimizada de Step Functions de la integración del AWS SDK de Step Functions

Tenga en cuenta que 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.

Para obtener más información, consulte los siguientes temas:

API y sintaxis admitidas de Step Functions:

El ejemplo siguiente incluye un estado Task que inicia una ejecución de otra máquina de estado y espera a que se complete.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync:2", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

El ejemplo siguiente incluye un estado Task que inicia una ejecución de otra máquina de estado.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

El ejemplo siguiente incluye un estado Task que implementa el patrón de integración de servicios de devolución de llamada.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.waitForTaskToken", "Parameters":{ "Input":{ "Comment": "Hello world!", "token.$": "$$.Task.Token" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

Para asociar una ejecución de flujo de trabajo anidado a la ejecución principal que la inició, transfiera un parámetro denominado especialmente que incluya el ID de ejecución extraído del objeto context. Al iniciar una ejecución anidada, utilice un parámetro denominado AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID. Transfiera el ID de ejecución añadiendo .$ al nombre del parámetro y haciendo referencia al ID en el objeto context con $$.Execution.Id. Para obtener más información, consulte Acceso al objeto de contexto.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync", "Parameters":{ "Input":{ "Comment": "Hello world!", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

Las máquinas de estado anidadas devuelven lo siguiente:

Recurso Salida
startExecution.sync Cadena
startExecution.sync:2 JSON

Ambos esperarán a que se complete la máquina de estado anidada, pero devuelven diferentes formatos Output. Por ejemplo, si crea una función de Lambda que devuelve el objeto { "MyKey": "MyValue" }, obtendría las siguientes respuestas:

Para startExecution.sync:

{ <other fields> "Output": "{ \"MyKey\": \"MyValue\" }" }

Para startExecution.sync:2:

{ <other fields> "Output": { "MyKey": "MyValue" } }

Configuración de los permisos de IAM para máquinas de estado anidadas

Una máquina de estado principal determina si una máquina de estado secundaria ha completado la ejecución mediante sondeos y eventos. Las votaciones requieren permiso states:DescribeExecution mientras que los eventos enviados EventBridge a Step Functions requieren permisos paraevents:PutTargets,events:PutRule, yevents:DescribeRule. Si faltan estos permisos en su rol de IAM, es posible que se produzca un retraso antes de que una máquina de estado principal se dé cuenta de que se ha completado la ejecución de la máquina de estado secundaria.

Para una máquina de estado que llame a StartExecution para una única ejecución de flujo de trabajo anidado, utilice una política de IAM que limite los permisos a esa máquina de estado.

Para obtener más información, consulte Permisos de IAM para Step Functions.