Reiniciando as execuções da máquina de estado com redrive em Step Functions - AWS Step Functions

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Reiniciando as execuções da máquina de estado com redrive em Step Functions

Você pode usar: redrive para reiniciar as execuções de fluxos de trabalho padrão que não foram concluídas com êxito nos últimos 14 dias. Isso inclui execuções com falha, abortadas ou expiradas.

Quando você redrive uma execução, continua a execução com falha a partir da etapa malsucedida e usa a mesma entrada. Step Functions preserva os resultados e o histórico de execução das etapas bem-sucedidas, que não são executadas novamente quando você redrive uma execução. Por exemplo, digamos que seu fluxo de trabalho contenha dois estados: um estado Passar estado do fluxo de trabalho seguido por um Estado do fluxo de trabalho da tarefa. Se a execução do seu fluxo de trabalho falhar no estado Tarefa, e você redrive a execução, a execução reagenda e, em seguida, executa novamente o estado da Tarefa.

Redriven as execuções usam a mesma definição e execução da máquina de estado ARN que foram usadas para a tentativa de execução original. Se sua tentativa de execução original foi associada a uma versão, alias ou a ambos, o redriven a execução está associada à mesma versão, alias ou a ambos. Mesmo se você atualizar seu alias para apontar para uma versão diferente, o redriven a execução continua usando a versão associada à tentativa de execução original. Porque redriven execuções usam a mesma definição de máquina de estado; você deve iniciar uma nova execução se atualizar sua definição de máquina de estado.

Quando você redrive em uma execução, o tempo limite do nível da máquina de estado, se definido, é redefinido para 0. Para obter mais informações sobre o tempo limite de máquinas de estado, consulte TimeoutSeconds.

Execução redrives são consideradas transições de estado. Para ver informações sobre como as transições de estado afetam o faturamento, consulte Preços do Step Functions.

Redrive elegibilidade para execuções malsucedidas

Você pode redrive execuções se sua tentativa de execução original atender às seguintes condições:

  • Você iniciou a execução em 15 de novembro de 2023 ou após essa data. As execuções que você iniciou antes dessa data não são elegíveis para redrive.

  • O status de execução não é SUCCEEDED.

  • A execução do fluxo de trabalho não excedeu o redrivable período de 14 dias. Redrivable período refere-se ao tempo durante o qual você pode redrive uma determinada execução. Esse período começa no dia em que uma máquina de estado conclui sua execução.

  • A execução do fluxo de trabalho não excedeu o tempo máximo de abertura de um ano. Para obter informações sobre cotas de execução de máquinas de estado, consulte Cotas relacionadas a execuções de máquina de estado.

  • A contagem do histórico de eventos de execução é inferior a 24.999. Redriven as execuções anexam seu histórico de eventos ao histórico de eventos existente. Certifique-se de que a execução do fluxo de trabalho contenha menos de 24.999 eventos, para acomodar o evento de ExecutionRedriven do histórico e pelo menos um outro evento do histórico.

Redrive comportamento de estados individuais

Dependendo do estado que falhou em seu fluxo de trabalho, o redrive o comportamento de todos os estados malsucedidos varia. A tabela a seguir descreve o redrive comportamento de todos os estados.

Nome do estado Redrive comportamento de execução
Passar estado do fluxo de trabalho

Se uma etapa anterior falhar ou a máquina de estado atingir o tempo limite, o estado Pass será encerrado e não será executado em redrive.

Estado do fluxo de trabalho da tarefa

Agenda e inicia o estado Tarefa novamente.

Quando você redrive uma execução que executa novamente um estado de Tarefa, o TimeoutSeconds para o estado, se definido, é redefinido para 0. Para obter mais informações sobre o tempo limite, consulte estado Tarefa.

Escolha o estado do fluxo de trabalho Reavalia as regras do estado Escolha.
Aguardar estado do fluxo de trabalho

Se o estado especificar Timestamp ou TimestampPath se referir a um carimbo de data/hora no passado, redrive faz com que o estado de Espera seja encerrado e insira o estado especificado no Next campo.

Estado bem-sucedido do fluxo de trabalho

Não redrive execuções de máquinas de estado que entram no estado Succeed.

Estado de falha do fluxo de trabalho

Entra novamente no estado Falha e há uma nova falha.

Estado do fluxo de trabalho paralelo

Reagendas e redrives somente aquelas ramificações que falharam ou foram abortadas.

Se o estado falhar devido a um erro States.DataLimitExceeded, o estado Paralelo será executado novamente, incluindo as ramificações que tiveram êxito na tentativa de execução original.

Estado Mapa inline

Reagendas e redrives somente aquelas iterações que falharam ou foram abortadas.

Se o estado falhar devido a um erro States.DataLimitExceeded, o estado Mapa inline será executado novamente, incluindo as iterações que tiveram êxito na tentativa de execução original.

Estado Mapa distribuído

redrives as execuções malsucedidas do fluxo de trabalho secundário em um Map Run. Para obter mais informações, consulte Redriving Map Runs em execuções de Step Functions.

Se o estado falhar devido a um erro States.DataLimitExceeded, o estado Mapa Distribuído será executado novamente. Isso inclui os fluxos de trabalho secundários que tiveram êxito na tentativa de execução original.

IAMpermissão para redrive uma execução

Step Functions precisa da permissão apropriada para redrive uma execução. O exemplo IAM de política a seguir concede o menor privilégio necessário à sua máquina de estado para redriving uma execução. Lembre-se de substituir o italicized texto com as informações específicas do seu recurso.

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

Para obter um exemplo da permissão que você precisa redrive a Map Run, vejaExemplo de IAM política para redriving um mapa distribuído.

Redriving execuções no console

Você pode redrive execuções elegíveis do Step Functions console.

Por exemplo, imagine que você executa uma máquina de estados e um estado paralelo não é executado.

A imagem a seguir mostra um Lambda A etapa de invocação chamada Fazer um número quadrado dentro de um estado paralelo retornou uma falha. Isso também fez com que o estado Paralelo falhasse. As ramificações cuja execução estava em andamento ou não tinha sido iniciada são interrompidas e a execução da máquina de estado falha.

Exemplo de gráfico de uma falha na execução de uma máquina de estado.
Para redrive uma execução a partir do console
  1. Abra o console do Step Functions e, em seguida, escolha uma máquina de estado existente cuja execução tenha falhado.

  2. Na página de detalhes da máquina de estado, em Execuções, escolha uma instância de execução com falha.

  3. Escolha Redrive.

  4. No Redrivecaixa de diálogo, escolha Redrive execução.

    dica

    Se você estiver na página Detalhes da execução de uma execução com falha, faça o seguinte para redrive a execução:

    • Escolha Recuperar e, em seguida, selecione Redrive do fracasso.

    • Escolha Ações e, em seguida, selecione Redrive.

    Observe que redrive usa a mesma definição de máquina de estado ARN e. A execução é retomada a partir da etapa onde houve a falha na tentativa original. Neste exemplo, a etapa é Fazer número quadrado e a ramificação Aguardar 3 seg dentro do estado Paralelo. Depois de reiniciar a execução dessas etapas malsucedidas no estado Paralelo, redrive continuará a execução da etapa Concluído.

  5. Escolha a execução para abrir a página Detalhes da execução .

    Nesta página, você pode ver os resultados do redriven execução. Por exemplo, na Resumo da execução seção, você pode ver Redrive contagem, que representa o número de vezes que uma execução foi redriven. Na seção Eventos, você pode ver o redrive eventos de execução relacionados anexados aos eventos da tentativa de execução original. Por exemplo, o evento de ExecutionRedriven.

Redriving execuções usando API

Você pode redrive execuções elegíveis usando o. RedriveExecutionAPI Isso API reinicia as execuções malsucedidas dos fluxos de trabalho padrão a partir da etapa que falhou, foi abortada ou atingiu o tempo limite.

No AWS Command Line Interface (AWS CLI), execute o seguinte comando para redrive uma execução malsucedida da máquina de estado. Lembre-se de substituir o italicized texto com as informações específicas do seu recurso.

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

Examinando redriven execuções

Você pode examinar um redriven execução no console ou usando oAPIs: GetExecutionHistoryDescribeExecutione.

Examine redriven execuções no console
  1. Abra o console Step Functions e, em seguida, escolha uma máquina de estado existente para a qual você tenha redriven uma execução.

  2. Abra a página de Detalhes da execução.

    Nesta página, você pode ver os resultados do redriven execução. Por exemplo, na Resumo da execução seção, você pode ver Redrive contagem, que representa o número de vezes que uma execução foi redriven. Na seção Eventos, você pode ver o redrive eventos de execução relacionados anexados aos eventos da tentativa de execução original. Por exemplo, o evento de ExecutionRedriven.

Examine redriven execuções usando APIs

Se você tem redriven uma execução de máquina de estado, você pode usar uma das opções a seguir APIs para visualizar detalhes sobre o redriven execução. Lembre-se de substituir o italicized texto com as informações específicas do seu recurso.

  • GetExecutionHistory — Retorna o histórico da execução especificada como uma lista de eventos. Isso API também retorna os detalhes sobre o redrive tentativa de execução, se disponível.

    No AWS CLI, execute o comando a seguir.

    aws stepfunctions get-execution-history --execution-arn arn:aws:states:us-east-2:123456789012:execution:myStateMachine:foo
  • DescribeExecution — Fornece informações sobre a execução de uma máquina de estado. Essa pode ser a máquina de estado associada à execução, à entrada e saída da execução, à execução redrive detalhes, se disponíveis, e metadados de execução relevantes.

    No AWS CLI, execute o comando a seguir.

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

Repetir o comportamento do redriven execuções

Se suas receitas redriven a execução executa novamente um estado Estado do fluxo de trabalho da tarefaEstado do fluxo de trabalho paralelo,, ou Inline Map, para o qual você definiu novas tentativas. A contagem de tentativas para esses estados é redefinida para 0 para permitir o número máximo de tentativas em redrive. Para um redriven execução, você pode rastrear tentativas individuais desses estados usando o console.

Para examinar as tentativas individuais de repetição no console
  1. Na página Detalhes da Execução do console Step Functions, escolha um estado que foi repetido no redrive.

  2. Escolha as novas tentativas e redrivesaba.

  3. Escolha o ícone de seta ao lado de cada nova tentativa para ver seus detalhes. Se a nova tentativa for bem-sucedida, você poderá ver os resultados na Saída que aparece em uma caixa suspensa.

A imagem a seguir mostra um exemplo das novas tentativas realizadas para um estado na tentativa de execução original e o redrives dessa execução. Nesta imagem, três novas tentativas são executadas no original e redrive tentativas de execução. A execução é bem-sucedida na quarta redrive tenta e retorna uma saída de 16.

Captura de tela ilustrativa mostrando três tentativas fracassadas e sucesso em uma quarta tentativa.