Iniciar ejecuciones de flujo 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.

Iniciar ejecuciones de flujo de trabajo desde un estado de tarea en Step Functions.

AWS Step Functions puede iniciar las ejecuciones del flujo 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 un flujo de trabajo anidado 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ó, pase el ID de ejecución del objeto Context a la entrada de ejecución. Puede acceder al ID desde el objeto de contexto desde su Task estado en una ejecución en ejecución. Transfiera el ID de ejecución agregándolo .$ al nombre del parámetro y haciendo referencia al ID en el objeto de contexto con él. $$.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 obtener más información, consulte los siguientes temas: