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: