Continua i flussi di lavoro di lunga durata utilizzando Step Functions API (consigliato) - 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à.

Continua i flussi di lavoro di lunga durata utilizzando Step Functions API (consigliato)

AWS Step Functions è progettato per eseguire flussi di lavoro con una durata e un numero di passaggi limitati. Le esecuzioni dei flussi di lavoro standard hanno una durata massima di un anno e 25.000 eventi (vedi). Quote di servizio Step Functions

Per le esecuzioni di lunga durata, è possibile evitare di raggiungere la quota fissa avviando una nuova esecuzione del flusso di lavoro dallo stato. Task È necessario suddividere i flussi di lavoro in macchine a stati più piccole che continuino il lavoro in corso in una nuova esecuzione.

Per avviare nuove esecuzioni di workflow, richiamerete l'StartExecutionAPIazione dal vostro Task stato e passerete i parametri necessari.

Step Functions può avviare l'esecuzione dei flussi di lavoro richiamando API il proprio servizio integrato. Si consiglia di utilizzare questo approccio per evitare il superamento delle quote di servizio per le esecuzioni di lunga durata.

Passaggio 1: creare una macchina a stati a esecuzione prolungata

Crea una macchina a stati a lunga durata che desideri avviare dallo Task stato di una macchina a stati diversa. Per questo tutorial, usa la macchina a stati che utilizza una funzione Lambda.

Nota

Assicurati di copiare il nome e il nome Amazon Resource Name di questa macchina a stati in un file di testo per un uso successivo.

Fase 2: Creare una macchina a stati per richiamare l'APIazione Step Functions

Per avviare le esecuzioni dei flussi di lavoro da uno Task stato
  1. Apri la console Step Functions e scegli Crea macchina a stati.

  2. Nella finestra di dialogo Scegli un modello, seleziona Vuoto.

  3. Scegliete Seleziona per aprire Workflow Studio inmodalità di progettazione.

  4. Dalla scheda Azioni, trascina l'StartExecutionAPIazione e rilasciala nello stato vuoto denominato Trascina il primo stato qui.

  5. Scegli lo StartExecutionstato ed esegui le seguenti operazioni nella scheda Configurazione inmodalità di progettazione:

    1. Rinomina lo stato in. Start nested execution

    2. Per Tipo di integrazione, scegli AWS SDK- nuovo dall'elenco a discesa.

    3. In APIParametri, procedi come segue:

      1. InfattiStateMachineArn, sostituisci l'Amazon Resource Name di esempio con quello ARN della tua macchina a stati. Ad esempio, inserisci il nome ARN della macchina a stati che utilizza Lambda.

      2. Per Input node, sostituisci il testo segnaposto esistente con il seguente valore:

        "Comment": "Starting workflow execution using a Step Functions API action"
      3. Assicurati che i tuoi input in APIParametri siano simili ai seguenti:

        { "StateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine", "Input": { "Comment": "Starting workflow execution using a Step Functions API action", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" }
  6. (Facoltativo) Scegliete Definizione nel Pannello Inspector pannello per visualizzare la definizione generata automaticamente Amazon States Language (ASL) del flusso di lavoro.

    Suggerimento

    Potete anche visualizzare la ASL definizione in Workflow Studio. Editor del codice Nell'editor di codice, puoi anche modificare la ASL definizione del tuo flusso di lavoro.

  7. Specificate un nome per la vostra macchina a stati. Per fare ciò, scegli l'icona di modifica accanto al nome della macchina a stati predefinita di MyStateMachine. Quindi, nella configurazione della macchina a stati, specifica un nome nella casella Nome macchina a stati.

    Per questo tutorial, inserisci il nome ParentStateMachine.

  8. (Facoltativo) Nella configurazione della macchina a stati, specificate altre impostazioni del flusso di lavoro, come il tipo di macchina a stati e il relativo ruolo di esecuzione.

    Per questo tutorial, mantieni tutte le selezioni predefinite nelle impostazioni della macchina a stati.

    Se in precedenza hai creato un IAM ruolo con le autorizzazioni corrette per la tua macchina a stati e desideri utilizzarlo, in Autorizzazioni seleziona Scegli un ruolo esistente, quindi seleziona un ruolo dall'elenco. Oppure seleziona Inserisci un ruolo ARN e quindi fornisci un ruolo ARN per quel IAM ruolo.

  9. Nella finestra di dialogo Conferma creazione del ruolo, scegli Conferma per continuare.

    Puoi anche scegliere Visualizza le impostazioni del ruolo per tornare alla configurazione della macchina a stati.

    Nota

    Se elimini il IAM ruolo creato da Step Functions, Step Functions non può ricrearlo in seguito. Allo stesso modo, se modifichi il ruolo (ad esempio, rimuovendo Step Functions dai principi della IAM politica), Step Functions non può ripristinare le impostazioni originali in un secondo momento.

Fase 3: Aggiornare la policy IAM

Per assicurarti che la tua macchina a stati disponga delle autorizzazioni per avviare l'esecuzione della macchina a stati che utilizza una funzione Lambda, devi allegare una policy in linea al ruolo della tua macchina a stati. IAM Per ulteriori informazioni, consulta Embedding Inline Policies nella Guida per l'utente. IAM

  1. Nella ParentStateMachinepagina, scegli il IAMruolo ARN per accedere alla pagina IAM Ruoli per la tua macchina a stati.

  2. Assegna un'autorizzazione appropriata al IAM ruolo di ParentStateMachineper consentirgli di avviare l'esecuzione di un'altra macchina a stati. Per assegnare l'autorizzazione, procedi come segue:

    1. Nella pagina IAM Ruoli, scegli Aggiungi autorizzazioni, quindi scegli Crea politica in linea.

    2. Nella pagina Crea policy, scegli la JSONscheda.

    3. Sostituisci il testo esistente con la seguente politica.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine" ] } ] }
    4. Scegli Verifica policy.

    5. Specificate un nome per la politica, quindi scegliete Crea politica.

Passaggio 4: Esegui la macchina a stati

Le esecuzioni di macchine a stati sono casi in cui si esegue il flusso di lavoro per eseguire attività.

  1. Nella ParentStateMachinepagina, scegli Avvia esecuzione.

    Viene visualizzata la finestra di dialogo Avvia esecuzione.

  2. Nella finestra di dialogo Avvia esecuzione, effettuate le seguenti operazioni:

    1. (Facoltativo) Inserite un nome di esecuzione personalizzato per sovrascrivere il valore predefinito generato.

      ASCIINomi diversi e registrazione

      Step Functions accetta nomi per macchine a stati, esecuzioni, attività ed etichette che contengono non ASCII caratteri. Poiché tali caratteri non funzionano con Amazon CloudWatch, ti consigliamo di utilizzare solo ASCII caratteri per tenere traccia delle metriche. CloudWatch

    2. (Facoltativo) Nella casella Input, inserisci i valori di input nel JSON formato per eseguire il flusso di lavoro.

    3. Selezionare Start execution (Avvia esecuzione).

    4. La console Step Functions ti indirizza a una pagina intitolata con il tuo ID di esecuzione. Questa pagina è nota come pagina dei dettagli di esecuzione. In questa pagina è possibile esaminare i risultati dell'esecuzione man mano che l'esecuzione procede o dopo il suo completamento.

      Per esaminare i risultati dell'esecuzione, scegliete i singoli stati nella vista Grafico, quindi scegliete le singole schede Dettagli del passaggio nel riquadro per visualizzare i dettagli di ogni stato, inclusi rispettivamente input, output e definizione. Per i dettagli sulle informazioni sull'esecuzione che è possibile visualizzare nella pagina Dettagli di esecuzione, vederePanoramica dei dettagli di esecuzione.

  3. Apri la LambdaStateMachinepagina e nota una nuova esecuzione attivata da. ParentStateMachine