Inicie las ejecuciones de flujos de trabajo desde un estado de tarea en 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.

Inicie las ejecuciones de flujos de trabajo desde un estado de tarea en Step Functions

AWS Step Functions puede iniciar las ejecuciones de flujos de trabajo directamente desde Task el estado de una máquina de estados. Esto le permite dividir los flujos de trabajo en máquinas de estado más pequeñas e iniciar ejecuciones de estas otras máquinas de estado. Al iniciar estas nuevas ejecuciones de flujo de trabajo puede:

  • Separar el flujo de trabajo de nivel superior de los flujos de trabajo específicos de tareas de nivel inferior.

  • Evitar elementos repetitivos llamando a una máquina de estado independiente varias veces.

  • Crear una biblioteca de flujos de trabajo reutilizables modulares para un desarrollo más rápido.

  • Reducir la complejidad y facilitar la edición y la resolución de problemas de máquinas de estado.

Step Functions puede iniciar estas ejecuciones de flujos de trabajo llamando al suyo propio API como un servicio integrado. Simplemente llame a la StartExecution API acción desde su Task estado y pase los parámetros necesarios. Puede llamar a Step Functions API mediante cualquiera de los patrones de integración de servicios.

sugerencia

Para implementar un ejemplo de flujo de trabajo anidado en su Cuenta de AWS, consulte el Módulo 13: Flujos de trabajo rápidos anidados.

Para iniciar una nueva ejecución de una máquina de estado, utilice un estado Task similar al ejemplo siguiente.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Input":{ "Comment":"Hello world!" }, }, "Retry":[ { "ErrorEquals":[ "StepFunctions.ExecutionLimitExceeded" ] } ], "End":true }

Este Task estado iniciará una nueva ejecución de la máquina de HelloWorld estados y pasará el JSON comentario como entrada.

nota

Las cuotas de StartExecution API acción pueden limitar el número de ejecuciones que puedes iniciar. Utilice Retry en StepFunctions.ExecutionLimitExceeded para asegurarse de que se inicia la ejecución. Consulte lo siguiente.

Asociar ejecuciones de flujos de trabajo

Para asociar una ejecución de flujo de trabajo iniciada con la ejecución que la inició, transfiera el ID de ejecución del objeto context a la entrada de ejecución. Puede acceder al ID desde el objeto context desde su estado Task en una ejecución en curso. 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.

"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"

Puede utilizar un parámetro especial denominado AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID al iniciar una ejecución. Si se incluye, esta asociación proporciona enlaces en la sección Detalles del paso de la consola de Step Functions. Cuando se proporciona, puede rastrear fácilmente las ejecuciones de los flujos de trabajo desde las ejecuciones de inicio a las ejecuciones de flujo de trabajo iniciadas. Utilizando el ejemplo anterior, asocie el ID de ejecución con la ejecución iniciada de la máquina de estado HelloWorld de la siguiente manera.

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

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