Riavvio delle esecuzioni delle macchine a stati con redrive 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à.

Riavvio delle esecuzioni delle macchine a stati con redrive Step Functions

Puoi utilizzarlo redrive per riavviare le esecuzioni dei flussi di lavoro standard che non sono stati completati correttamente negli ultimi 14 giorni. Queste includono esecuzioni non riuscite, interrotte o scadute.

Quando si redrive esegue un'esecuzione, Step Functions continua l'esecuzione non riuscita del passaggio non riuscito e utilizza lo stesso input. Step Functionsconserva i risultati e la cronologia di esecuzione dei passaggi riusciti, che non vengono rieseguiti quando si esegue un'esecuzione. redrive Ad esempio, supponiamo che il flusso di lavoro contenga due stati: uno Passare lo stato del workflow stato seguito da uno stato. Stato del flusso di lavoro delle attività Se l'esecuzione del flusso di lavoro non riesce nello stato dell'operazione e redrive l'esecuzione dell'operazione non riesce, l'esecuzione ripianifica e quindi riesegue lo stato dell'operazione.

Redrivenle esecuzioni utilizzano la stessa definizione della macchina a stati e lo stesso ARN di esecuzione utilizzato per il tentativo di esecuzione originale. Se il tentativo di esecuzione originale era associato a una versione, allo stesso alias o a entrambi, l'redrivenesecuzione è associata alla stessa versione, allo stesso alias o a entrambi. Anche se aggiorni l'alias in modo che punti a una versione diversa, l'redrivenesecuzione continua a utilizzare la versione associata al tentativo di esecuzione originale. Poiché redriven le esecuzioni utilizzano la stessa definizione di macchina a stati, è necessario avviare una nuova esecuzione se si aggiorna la definizione della macchina a stati.

Quando si esegue redrive un'esecuzione, il timeout a livello di macchina a stati, se definito, viene reimpostato su 0. Per ulteriori informazioni sul timeout a livello di macchina a stati, vedere. TimeoutSeconds

redrivesLe esecuzioni sono considerate come transizioni di stato. Per informazioni su come le transizioni di stato influiscono sulla fatturazione, consulta Step Functions Pricing.

Redriveidoneità per esecuzioni non riuscite

È possibile redrive eseguire esecuzioni se il tentativo di esecuzione originale soddisfa le seguenti condizioni:

  • Hai iniziato l'esecuzione il 15 novembre 2023 o dopo tale data. Le esecuzioni iniziate prima di questa data non sono redrive idonee.

  • Lo stato di esecuzione non SUCCEEDED lo è.

  • L'esecuzione del flusso di lavoro non ha superato il redrivable periodo di 14 giorni. Redrivableil periodo si riferisce al periodo durante il quale è possibile redrive una determinata esecuzione. Questo periodo inizia dal giorno in cui una macchina a stati completa la sua esecuzione.

  • L'esecuzione del flusso di lavoro non ha superato il tempo di apertura massimo di un anno. Per informazioni sulle quote di esecuzione delle macchine a stati, vedere. Quote relative alle esecuzioni di macchine a stati

  • Il numero della cronologia degli eventi di esecuzione è inferiore a 24.999. Redrivenle esecuzioni aggiungono la cronologia degli eventi alla cronologia degli eventi esistente. Assicurati che l'esecuzione del flusso di lavoro contenga meno di 24.999 eventi per contenere l'evento della ExecutionRedriven cronologia e almeno un altro evento della cronologia.

Redrivecomportamento dei singoli stati

A seconda dello stato che ha avuto esito negativo nel flusso di lavoro, il redrive comportamento di tutti gli stati non riusciti varia. La tabella seguente descrive il redrive comportamento di tutti gli stati.

Nome dello stato Redrivecomportamento di esecuzione
Passare lo stato del workflow

Se un passaggio precedente fallisce o la macchina a stati scade, lo stato Pass viene chiuso e non viene eseguito. redrive

Stato del flusso di lavoro delle attività

Pianifica e riavvia lo stato dell'attività.

Quando si redrive esegue un'esecuzione che riesegue uno stato Task, lo stato TimeoutSeconds for, se definito, viene reimpostato su 0. Per ulteriori informazioni sul timeout, consulta Task state.

Stato del workflow di scelta Rivaluta le regole dello stato Choice.
Attendi lo stato del workflow

Se lo stato specifica Timestamp o TimestampPath fa riferimento a un timestamp passato, redrive provoca l'uscita dallo stato Wait e inserisce lo stato specificato nel campo. Next

Stato del flusso di lavoro Success

Non indica le esecuzioni automatiche che entrano redrive nello stato Succeed.

Stato del flusso di lavoro fallito

Rientra nello stato Fail e fallisce nuovamente.

Stato del flusso di lavoro parallelo

Riprogramma e redrives solo i rami che hanno avuto esito negativo o interrotto.

Se lo stato ha avuto esito negativo a causa di un States.DataLimitExceeded errore, viene eseguito nuovamente lo stato Parallel, inclusi i rami che hanno avuto successo nel tentativo di esecuzione originale.

Stato della mappa in linea

Riprogramma e redrives solo le iterazioni fallite o interrotte.

Se lo stato ha avuto esito negativo a causa di un States.DataLimitExceeded errore, viene eseguito nuovamente lo stato Inline Map, incluse le iterazioni che hanno avuto successo nel tentativo di esecuzione originale.

Stato della mappa distribuita

redrivesle esecuzioni non riuscite del workflow secondario in un Map Run. Per ulteriori informazioni, consulta RedrivingLa mappa viene eseguita nelle esecuzioni Step Functions.

Se lo stato ha avuto esito negativo a causa di un States.DataLimitExceeded errore, lo stato della mappa distribuita viene eseguito nuovamente. Ciò include i flussi di lavoro secondari che hanno avuto successo nel tentativo di esecuzione originale.

Autorizzazione IAM a redrive un'esecuzione

Step Functions necessita dell'autorizzazione appropriata per redrive l'esecuzione. Il seguente esempio di policy IAM concede il minimo privilegio richiesto alla macchina a stati per l'esecuzioneredriving. Ricordati di sostituire il italicized testo con informazioni specifiche sulla tua risorsa.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:region:account-id:execution:myStateMachine:*" } ] }

Per un esempio dell'autorizzazione necessaria per eseguire redrive una Map Run, vedi. Esempio di policy IAM per redriving una mappa distribuita

Redrivingesecuzioni in console

È possibile effettuare esecuzioni redrive idonee dalla Step Functions console.

Ad esempio, immagina di eseguire una macchina a stati e uno stato parallelo non riesca a funzionare.

L'immagine seguente mostra un passaggio di LambdaInvoke denominato Do square number in uno stato Parallel che è stato restituito e non è riuscito. Ciò ha causato anche il fallimento dello stato Parallel. I rami la cui esecuzione era in corso o non avviata vengono interrotti e l'esecuzione della macchina a stati fallisce.

Grafico di esempio dell'esecuzione fallita di una macchina a stati.
A redrive un'esecuzione dalla console
  1. Apri la console Step Functions, quindi scegli una macchina a stati esistente la cui esecuzione non è riuscita.

  2. Nella pagina dei dettagli della macchina a stati, in Esecuzioni, scegli un'istanza di esecuzione non riuscita.

  3. Scegli Redrive.

  4. Nella finestra Redrivedi dialogo, scegliete Redriveesecuzione.

    Suggerimento

    Se ti trovi nella pagina Dettagli di esecuzione di un'esecuzione non riuscita, esegui una delle seguenti operazioni: redrive

    • Scegli Ripristina, quindi seleziona Redriveda un errore.

    • Scegli Azioni, quindi seleziona Redrive.

    Si noti che redrive utilizza la stessa definizione di macchina a stati e lo stesso ARN. Continua a eseguire l'esecuzione dal passaggio che non è riuscito nel tentativo di esecuzione originale. In questo esempio, si tratta del passaggio Do square number e del ramo Wait 3 sec all'interno dello stato Parallel. Dopo aver riavviato l'esecuzione di questi passaggi non riusciti nello stato Parallel, redrive continuerà l'esecuzione per il passaggio Done.

  5. Scegliete l'esecuzione per aprire la pagina Dettagli di esecuzione.

    In questa pagina è possibile visualizzare i risultati dell'redrivenesecuzione. Ad esempio, nella Riepilogo dell'esecuzione sezione è possibile visualizzare il Redriveconteggio, che rappresenta il numero di volte in cui è stata eseguita un'esecuzioneredriven. Nella sezione Eventi, è possibile visualizzare gli eventi di esecuzione redrive correlati aggiunti agli eventi del tentativo di esecuzione originale. Ad esempio, l'ExecutionRedrivenevento.

Redrivingesecuzioni tramite API

È possibile utilizzare l'API per le esecuzioni redrive idonee. RedriveExecution Questa API riavvia le esecuzioni non riuscite dei flussi di lavoro standard dal passaggio fallito, interrotto o scaduto.

In AWS Command Line Interface (AWS CLI), esegui il seguente comando per un'esecuzione non riuscita su una macchina a redrive stati. Ricordati di sostituire il italicized testo con le informazioni specifiche della risorsa.

aws stepfunctions redrive-execution --execution-arn arn:aws:states:us-east-2:account-id:execution:myStateMachine:foo

redrivenEsame delle esecuzioni

È possibile esaminare un'redrivenesecuzione nella console o utilizzando APIs: GetExecutionHistoryand. DescribeExecution

Esamina redriven le esecuzioni sulla console
  1. Apri la console Step Functions, quindi scegli una macchina a stati esistente per la quale hai redriven un'esecuzione.

  2. Apri la pagina Dettagli di esecuzione.

    In questa pagina è possibile visualizzare i risultati dell'redrivenesecuzione. Ad esempio, nella Riepilogo dell'esecuzione sezione è possibile visualizzare il Redriveconteggio, che rappresenta il numero di volte in cui è stata eseguita un'esecuzioneredriven. Nella sezione Eventi, è possibile visualizzare gli eventi di esecuzione redrive correlati aggiunti agli eventi del tentativo di esecuzione originale. Ad esempio, l'ExecutionRedrivenevento.

Esamina redriven le esecuzioni usando APIs

Se hai redriven un'esecuzione su una macchina a stati, puoi utilizzare una delle seguenti opzioni APIs per visualizzare i dettagli sull'redrivenesecuzione. Ricordati di sostituire il italicized testo con le informazioni specifiche della risorsa.

  • GetExecutionHistory — Restituisce la cronologia dell'esecuzione specificata sotto forma di elenco di eventi. Questa API restituisce anche i dettagli sul redrive tentativo di esecuzione, se disponibili.

    In AWS CLI, esegui il comando seguente.

    aws stepfunctions get-execution-history --execution-arn arn:aws:states:us-east-2:account-id:execution:myStateMachine:foo
  • DescribeExecution — Fornisce informazioni sull'esecuzione di una macchina a stati. Può trattarsi della macchina a stati associata all'esecuzione, dell'input e dell'output dell'esecuzione, dei redrive dettagli di esecuzione, se disponibili, e dei metadati di esecuzione pertinenti.

    In AWS CLI, esegui il comando seguente.

    aws stepfunctions describe-execution --execution-arn arn:aws:states:us-east-2:account-id:execution:myStateMachine:foo

Riprova il comportamento delle esecuzioni redriven

Se redriven l'esecuzione riesegue uno statoStato del flusso di lavoro delle attività, o Inline Map Stato del flusso di lavoro parallelo, per il quale sono stati definiti nuovi tentativi, il conteggio dei tentativi per questi stati viene ripristinato a 0 per consentire il numero massimo di tentativi. redrive Per un'redrivenesecuzione, è possibile tenere traccia dei singoli tentativi di nuovi tentativi di questi stati utilizzando la console.

Per esaminare i singoli tentativi di riprova nella console
  1. Nella pagina Dettagli di esecuzione della console Step Functions, scegli uno stato su redrive cui è stato riprovato.

  2. Scegliete la scheda Riprova e redrives.

  3. Scegli l'icona a forma di freccia accanto a ogni nuovo tentativo per visualizzarne i dettagli. Se il nuovo tentativo è riuscito, puoi visualizzare i risultati in Output, visualizzato in una casella a discesa.

L'immagine seguente mostra un esempio dei tentativi eseguiti per uno stato del tentativo di esecuzione originale e del redrives relativo tentativo. In questa immagine, vengono eseguiti tre tentativi nel tentativo originale e nel tentativo di redrive esecuzione. L'esecuzione riesce al quarto redrive tentativo e restituisce un risultato di 16.

Schermata illustrativa che mostra tre tentativi falliti e l'esito positivo di un quarto tentativo.