Redriving execuções - 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á.

Redriving execuções

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

Quando você redrive uma execução com falha, ela é retomada a partir da etapa falhou, usando 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 Pass seguido por um Estado da tarefa. Se a execução do fluxo de trabalho falhar no estado Tarefa e você redrive a execução, esta será reagendada, com uma nova execução do estado Tarefa.

As execuções Redriven usam a mesma definição de máquina de estado e ARN de execução utilizados para a tentativa de execução original. Se a tentativa de execução original tiver sido associada a uma versão, alias ou ambos, a execução redriven estará associada à mesma versão, alias ou ambos. Mesmo que você atualize seu alias para apontar para uma versão diferente, a execução redriven continuará usando a versão associada à tentativa de execução original. Como as execuções redriven usam a mesma definição de máquina de estado, você deverá iniciar uma nova execução se quiser atualizar sua definição de máquina de estado.

Quando você redrive 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.

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

Elegibilidade de Redrive para execuções malsucedidas

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

  • Você iniciou a execução em 15 de novembro de 2023 ou após essa data. As execuções iniciadas antes dessa data não têm direito ao redrive.

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

  • A execução do fluxo de trabalho não excedeu o período de redrivable de 14 dias. O período de Redrivable se refere 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. As execuções Redriven anexam o histórico de eventos delas ao de eventos existentes. 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.

Comportamento de Redrive de estados individuais

O comportamento de redrive de todos os estados malsucedidos varia de acordo com qual estado falhou em seu fluxo de trabalho. A tabela a seguir descreve o comportamento de redrive para todos os estados.

Nome do estado Comportamento de Redrive de execução
Pass

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

Estado da tarefa

Agenda e inicia o estado Tarefa novamente.

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

Choice Reavalia as regras do estado Escolha.
Aguardar

Se o estado especificar um Timestamp ou TimestampPath que se refiram a um timestamp no passado, redrive fará com que o estado Aguardar seja encerrado e vai inserir o estado especificado no campo Next.

Succeed

Não redrive execuções de máquina de estado que entrem no estado Êxito.

Fail

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

Paralelo

Reagenda e redrives somente as 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

Reagenda e redrives somente as 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 uma Execução de mapa. Para ter mais informações, consulte Redriving execuções de mapa.

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.

Permissão do IAM para redrive uma execução

Step Functions precisa da permissão apropriada para redrive uma execução. O exemplo de política do IAM a seguir concede o privilégio mínimo necessário à sua máquina de estado para redriving uma execução. Lembre-se de substituir o texto em itálico pelas informações específicas do 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 necessária para redrive uma Execução de mapa, consulte Exemplo de política do IAM para redriving um estado Mapa Distribuído.

Redriving execuções no console

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

Por exemplo, digamos que a imagem a seguir represente o gráfico do fluxo de trabalho da sua máquina de estado.

Gráfico do fluxo de trabalho de uma máquina de estado que inclui os estados: Passagem, Paralelo, Invocação Lambda e Aguardar.

Imagine que você administre essa máquina de estado. A imagem a seguir mostra o gráfico para a execução de máquina de estado.

Gráfico de uma execução de máquina de estado com falha. Nessa execução, a ramificação do estado Paralelo chamada Fazer número quadrado falhou, causando uma falha no estado Paralelo.

Conforme mostrado na imagem, a etapa Invocação Lambda chamada Fazer número quadrado dentro do estado Paralelo retornou um erro. Isso causou uma falha no estado Paralelo. 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.

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. Selecione Redrive.

  4. Na caixa de diálogo Redrive, 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 de uma falha.

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

    Observe que redrive usa a mesma definição de máquina de estado e ARN. 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, o redrive continuará a execução da etapa Concluído.

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

    Nessa página, é possível visualizar os resultados da execução redriven. Por exemplo, na seção Resumo da execução, você pode ver a Contagem de Redrive, que representa o número de vezes que uma execução foi redriven. Na seção Eventos, você pode ver os eventos relacionados ao redrive de execução anexados aos da tentativa de execução original. Por exemplo, o evento de ExecutionRedriven.

Redriving execuções usando API

Você pode redrive qualificar execuções usando a RedriveExecutionAPI. Essa 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 comando a seguir para redrive uma execução malsucedida da máquina de estado. Lembre-se de substituir o texto em itálico pelas informações específicas do recurso.

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

Examinar execuções redriven

Você pode examinar uma redriven execução no console ou usando as APIs: GetExecutionHistorye. DescribeExecution

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

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

    Nessa página, é possível visualizar os resultados da execução redriven. Por exemplo, na seção Resumo da execução, você pode ver a Contagem de Redrive, que representa o número de vezes que uma execução foi redriven. Na seção Eventos, você pode ver os eventos relacionados ao redrive de execução anexados aos da tentativa de execução original. Por exemplo, o evento de ExecutionRedriven.

Examinar as execuções redriven usando APIs

Se você tiver redriven uma execução de máquina de estado, poderá usar uma das seguintes APIs para ver detalhes sobre a execução redriven. Lembre-se de substituir o texto em itálico pelas informações específicas do recurso.

  • GetExecutionHistory — Retorna o histórico da execução especificada como uma lista de eventos. Essa API também retorna os detalhes sobre a tentativa redrive de uma 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. Podem ser sobre a máquina de estado associada à execução, entrada e saída da execução, detalhes de redrive da execução, 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 das execuções redriven

Se sua execução redriven executar novamente um estado Estado da tarefa, Paralelo ou Mapa inline, para o qual você definiu novas tentativas, a contagem de novas tentativas para esses estados será redefinida para 0. Isso permite o número máximo de tentativas no redrive. Para uma execução redriven, você pode monitorar 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 do Step Functions, escolha um estado que foi repetido no redrive.

  2. Escolha a guia Tentativas e redrives.

  3. Escolha o arrow icon ao lado de cada tentativa para visualizar os 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 na tentativa original e na tentativa de redrive a execução. A execução é bem-sucedida na quarta tentativa de redrive e retorna uma saída de 16.

Guia Tentativas e redrives de um estado Tarefa redriven. Essa guia mostra as três tentativas de repetição feitas na execução original e os redrives dessa execução. A execução é bem-sucedida na quarta tentativa de redrive e retorna uma saída de 16.