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à.
Gestisci AWS Step Functions le esecuzioni come servizio integrato
Step Functions si integra con la propria API come integrazione di servizi. Ciò consente a Step Functions di avviare una nuova esecuzione di una macchina a stati direttamente dallo stato dell'attività di un'esecuzione in esecuzione. Durante la creazione di nuovi flussi di lavoro, utilizza le esecuzioni di flusso di lavoro nidificate per ridurre la complessità dei flussi di lavoro principali e riutilizzare i processi comuni.
In che modo l'integrazione Optimized Step Functions è diversa dall'integrazione Step Functions AWS SDK
Il modello di Esegui un processo (.sync) integrazione è disponibile.
Nota che non ci sono ottimizzazioni per i modelli Richiesta e risposta di Attendere un callback con il token dell’attività integrazione.
Per ulteriori informazioni, consulta gli argomenti seguenti:
API e sintassi Step Functions supportate:
-
-
Parametri supportati
Di seguito è incluso uno stato Task
che avvia l'esecuzione di un'altra macchina a stati e ne attende il completamento.
{
"Type":"Task",
"Resource":"arn:aws:states:::states:startExecution.sync:2",
"Parameters":{
"Input":{
"Comment": "Hello world!"
},
"StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"Name":"ExecutionName"
},
"End":true
}
Di seguito è incluso uno stato Task
che avvia l'esecuzione di un'altra macchina a stati.
{
"Type":"Task",
"Resource":"arn:aws:states:::states:startExecution",
"Parameters":{
"Input":{
"Comment": "Hello world!"
},
"StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"Name":"ExecutionName"
},
"End":true
}
L’esempio seguente include uno stato Task
che implementa il modello di integrazione del servizio di callback.
{
"Type":"Task",
"Resource":"arn:aws:states:::states:startExecution.waitForTaskToken",
"Parameters":{
"Input":{
"Comment": "Hello world!",
"token.$": "$$.Task.Token"
},
"StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"Name":"ExecutionName"
},
"End":true
}
Per associare un'esecuzione di flusso di lavoro nidificata all'esecuzione padre che l'ha avviata, trasferisce un parametro appositamente denominato che include l'ID di esecuzione estratto dall'oggetto contesto. Quando si avvia un'esecuzione nidificata, utilizza un parametro denominato AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID
. Passa l'ID di esecuzione aggiungendo .$
al nome del parametro e facendo riferimento all'ID nell'oggetto contesto con $$.Execution.Id
. Per ulteriori informazioni, consulta Accesso all'oggetto contestuale.
{
"Type":"Task",
"Resource":"arn:aws:states:::states:startExecution.sync",
"Parameters":{
"Input":{
"Comment": "Hello world!",
"AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
},
"StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld",
"Name":"ExecutionName"
},
"End":true
}
Le macchine a stato nidificato restituiscono quanto segue:
Risorsa | Output |
---|---|
startExecution.sync | Stringa |
startExecution.sync:2 | JSON |
Entrambi attenderanno il completamento della macchina a stati nidificati, ma restituiscono formati Output
diversi. Ad esempio, se crei una funzione Lambda che restituisce l'oggetto{ "MyKey": "MyValue" }
, otterrai le seguenti risposte:
Per startExecution.sync:
{
<other fields>
"Output": "{ \"MyKey\": \"MyValue\" }"
}
Per startExecution.sync:2:
{
<other fields>
"Output": {
"MyKey": "MyValue"
}
}
Configurazione delle autorizzazioni IAM per macchine a stati annidate
Una macchina a stati principale determina se una macchina a stati figlio ha completato l'esecuzione utilizzando polling ed eventi. Il polling richiede l'autorizzazione states:DescribeExecution
mentre gli eventi inviati EventBridge a Step Functions richiedono le autorizzazioni per events:PutTargets
events:PutRule
, e. events:DescribeRule
Se nel tuo ruolo IAM mancano queste autorizzazioni, potrebbe verificarsi un ritardo prima che una macchina a stati principale venga a conoscenza del completamento dell'esecuzione della macchina a stati secondari.
Per una macchina a stati che richiede StartExecution
l'esecuzione di un singolo flusso di lavoro annidato, utilizza una policy IAM che limiti le autorizzazioni a quella macchina a stati.
Per ulteriori informazioni, consulta Autorizzazioni IAM per Step Functions.