Redrivingesecuzioni - 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à.

Redrivingesecuzioni

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 esegue redrive un'esecuzione, 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 e questi passaggi non vengono rieseguiti durante l'esecuzione. redrive Ad esempio, supponiamo che il flusso di lavoro contenga due stati: uno Pass stato seguito da uno stato. Stato dell'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 conteggio 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
Pass

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

Stato dell'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.

Choice Rivaluta le regole dello stato Choice.
Attendi

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

Succeed

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

Fail

Rientra nello stato Fail e fallisce nuovamente.

Parallel

Riprogramma e redrives solo i rami che hanno avuto esito negativo o sono stati interrotti.

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 RedrivingMappa corre.

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 testo in corsivo con le informazioni specifiche della risorsa.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:RedriveExecution" ], "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachine:*" } ] }

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

Redrivingesecuzioni in console

È possibile effettuare esecuzioni redrive idonee dalla Step Functions console.

Ad esempio, supponiamo che l'immagine seguente rappresenti il grafico del flusso di lavoro della macchina a stati.

Grafico del flusso di lavoro di una macchina a stati che include gli stati: Pass, Parallel, Lambda Invoke e Wait.

Immagina di utilizzare questa macchina a stati. L'immagine seguente mostra il grafico dell'esecuzione della macchina a stati.

Grafico dell'esecuzione fallita di una macchina a stati. In questa esecuzione, il ramo di stato parallelo denominato Do square number ha avuto esito negativo, causando il fallimento dello stato Parallel.

Come mostrato in questa immagine, il passaggio LambdaInvoke denominato Do square number all'interno dello stato Parallel ha restituito un errore. Ciò ha causato 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.

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 comando seguente per eseguire con successo una macchina a redrive stati. Ricordati di sostituire il testo in corsivo con le informazioni specifiche della risorsa.

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

redrivenEsame delle esecuzioni

È possibile esaminare un'redrivenesecuzione nella console o utilizzando le API: and. GetExecutionHistoryDescribeExecution

Esamina le redriven 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 utilizzando le API

Se hai redriven un'esecuzione su una macchina a stati, puoi utilizzare una delle seguenti API per visualizzare i dettagli sull'esecuzione. redriven Ricordati di sostituire il testo in corsivo 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:123456789012: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:123456789012:execution:myStateMachine:foo

Riprova il comportamento delle esecuzioni redriven

Se redriven l'esecuzione riesegue uno stato, o Inline Map Stato dell'attivitàParallel, per il quale sono stati definiti nuovi tentativi, il conteggio dei tentativi per questi stati viene reimpostato su 0. Ciò consente il numero massimo di tentativi in corso. 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 il arrow icon successivo 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.

Riprova e cancella redrives lo stato di un'redrivenoperazione. Questa scheda mostra i tre tentativi effettuati nell'esecuzione originale e in quella esecuzione. redrives L'esecuzione riesce al quarto redrive tentativo e restituisce un risultato di 16.