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à.
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 queste esecuzioni di flussi di lavoro chiamando la propria API come servizio integrato. È sufficiente chiamare l'operazione API StartExecution
dallo stato Task
e passare i parametri necessari. Puoi chiamare l'API Step Functions utilizzando uno qualsiasi dei modelli di integrazione del servizio.
Suggerimento
Per implementare un esempio di flusso di lavoro annidato, consulta Ottimizzazione dei costi
Per avviare 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 stato Task
avvia una nuova esecuzione della macchina a stati HelloWorld
e passa il commento JSON come input.
Nota
Le quote dell'operazione API StartExecution
possono condizionare 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 l'esecuzione di un workflow avviato all'esecuzione che l'ha avviata, passate l'ID di esecuzione dall'oggetto Context all'input di esecuzione. È possibile accedere all'ID dall'oggetto Context dal proprio Task
stato in un'esecuzione in esecuzione. Passate l'ID di esecuzione aggiungendolo .$
al nome del parametro e facendo riferimento all'ID nell'oggetto Context 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: