Redrivingexecuções de máquinas de estado 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á.

Redrivingexecuções de máquinas de estado em Step Functions

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 Passar estado do fluxo de trabalho seguido por um Estado do fluxo de trabalho 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.

Redrivenas 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 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
Passar estado do fluxo de trabalho

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 do fluxo de trabalho 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.

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

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.

Estado bem-sucedido do fluxo de trabalho

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

Estado de falha do fluxo de trabalho

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

Estado do fluxo de trabalho 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 obter mais informações, consulte RedrivingMap 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 necessária para redrive uma Execução de mapa, consulte Exemplo de IAM política para redriving um mapa distribuído.

Redriving execuções no console

Você pode redrive qualificar execuções no 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 uma etapa de Lambdainvocação chamada Do square number dentro de um estado paralelo que 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. 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 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, 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.

Redrivingexecuções usando API

Você pode redrive qualificar execuções 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 comando a seguir 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

Examinar execuções redriven

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

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.

Examine as redriven execuções usando APIs

Se você tiver redriven uma execução de máquina de estado, poderá usar uma das opções a seguir APIs para ver detalhes sobre a 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 a redrive tentativa de execução, se disponíveis.

    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 redriven execução executar novamente um estadoEstado do fluxo de trabalho da tarefa,Estado do fluxo de trabalho paralelo, ou Inline Map, para o qual você definiu novas tentativas, a contagem de novas tentativas para esses estados será redefinida para 0 para permitir o número máximo de tentativas realizadas. 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 í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 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.

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