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'StartExecution
APIazione 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: