Avvia le esecuzioni del flusso di lavoro da uno stato di attività in Step Functions - AWS Step Functions

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Avvia le esecuzioni del flusso di lavoro da uno stato di attività in Step Functions

AWS Step Functions può avviare le esecuzioni dei flussi di lavoro direttamente dallo Task stato di una macchina a stati. In questo modo puoi suddividere i flussi di lavoro in macchine a stati più piccole e avviare le esecuzioni di queste altre macchine a stati. Avviando queste nuove esecuzioni di flusso di lavoro puoi:

  • Separare il flusso di lavoro di livello superiore dai flussi di lavoro specifici del task di livello inferiore.

  • Evitare gli elementi ripetitivi chiamando una macchina a stati separata più volte.

  • Creare una libreria di flussi di lavoro riutilizzabili modulari per uno sviluppo più rapido.

  • Ridurre la complessità e facilitare la modifica e la risoluzione dei problemi delle macchine a stati.

Step Functions può avviare l'esecuzione di questi flussi di lavoro richiamando il proprio sistema API come servizio integrato. Basta richiamare l'StartExecutionAPIazione dal proprio Task stato e passare i parametri necessari. È possibile chiamare Step Functions API utilizzando uno qualsiasi dei modelli di integrazione del servizio.

Suggerimento

Per distribuire un esempio di flusso di lavoro nidificato sul tuo Account AWS, consulta Modulo 13 - Flussi di lavoro Nested Express.

Per iniziare una nuova esecuzione di una macchina a stati, utilizzate uno Task stato simile all'esempio seguente:

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

Questo Task stato avvierà una nuova esecuzione della macchina a HelloWorld stati e passerà il JSON commento come input.

Nota

Le quote di StartExecution API azione possono limitare il numero di esecuzioni che è possibile avviare. Utilizza Retry su StepFunctions.ExecutionLimitExceeded per assicurarti che l'esecuzione venga avviata. Consulta quanto segue.

Associazione di esecuzioni di flusso di lavoro

Per associare un'esecuzione di flusso di lavoro avviata all'esecuzione che l'ha avviata, passa l'ID di esecuzione dall'oggetto contesto all'input di esecuzione. Puoi accedere all'ID dall'oggetto contesto del tuo stato Task in un'esecuzione in corso. Passa l'ID di esecuzione aggiungendo .$ al nome del parametro e facendo riferimento all'ID nell'oggetto contesto con $$.Execution.Id.

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

Puoi utilizzare un parametro speciale denominato AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID all'avvio di un'esecuzione. Se inclusa, questa associazione fornisce collegamenti nella sezione Dettagli Step della console Step Functions. Se vengono forniti, puoi facilmente tracciare le esecuzioni dei tuoi flussi di lavoro dall'avvio all'esecuzione di flusso di lavoro avviata. Utilizzando l'esempio precedente, associa l'ID di esecuzione all'esecuzione avviata della macchina a stati HelloWorld come segue.

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

Per ulteriori informazioni, consulta gli argomenti seguenti: