Escolher o tipo de fluxo de trabalho no Step Functions - AWS Step Functions

Escolher o tipo de fluxo de trabalho no Step Functions

Ao criar uma máquina de estado, você deve escolher o tipo padrão ou expresso, geralmente chamado de fluxo de trabalho padrão ou fluxo de trabalho expresso.

Você define ambos os tipos de máquina de estado usando Usar a Amazon States Language para definir fluxos de trabalho do Step Functions.

Os fluxos de trabalho padrão e expresso podem ser iniciados em resposta a eventos como solicitações HTTP do Amazon API Gateway, regras de IoT e mais de 140 fontes de eventos no Amazon EventBridge.

O tipo de fluxo de trabalho é imutável

O tipo de fluxo de trabalho não pode ser atualizado após a criação da máquina de estado.

Fluxos de trabalho padrão são ideais para fluxos de trabalho de longa execução (de até um ano), duráveis e auditáveis. Você pode recuperar o histórico de execução completo usando a API do Step Functions, até 90 dias após a conclusão da execução.

Os fluxos de trabalho padrão seguem um modelo do tipo exactly-once, onde suas tarefas e estados nunca são executados mais de uma vez, a menos que você tenha especificado o comportamento de Retry em ASL. O modelo exactly-once torna os fluxos de trabalho padrão adequados para a orquestração de ações não idempotentes, como iniciar um cluster do Amazon EMR ou processar pagamentos.

As execuções dos fluxos de trabalho padrão são faturadas de acordo com o número de transições de estado processadas.

Fluxos de trabalho expressos são ideais para workloads de processamento de eventos de alto volume, como ingestão de dados de IoT, processamento e transformação de dados de streaming e backends de aplicativos móveis. Eles podem ser executados por até cinco minutos.

Os fluxos de trabalho expressos seguem um modelo do tipo at-least-once, onde a execução pode ser realizada mais de uma vez. O modelo at-least-once torna os fluxos de trabalho expressos mais adequados para a orquestração de ações idempotentes, como transformar dados de entrada para serem armazenados no Amazon DynamoDB usando uma ação PUT.

As execuções de fluxos de trabalho expressos são cobradas pelo número de execuções, pela duração total da execução e pela memória consumida durante a execução.

dica

Para implantar um exemplo de fluxo de trabalho expresso, consulte Processamento de dados em paralelo no O Workshop AWS Step Functions.

Comparação dos tipos de fluxo de trabalho padrão e expresso

Tipo/categoria Fluxos de trabalho padrão Fluxos de trabalho expresso: síncronos e assíncronos
Duração máxima Um ano Cinco minutos
Taxa inicial de execução suportada

Para obter informações sobre cotas relacionadas à taxa inicial de execução compatível, consulte Cotas relacionadas ao controle de utilização das ações de API.

Para obter informações sobre cotas relacionadas à taxa inicial de execução compatível, consulte Cotas relacionadas ao controle de utilização das ações de API.

Taxa de transição de estado suportada

Para obter informações sobre cotas relacionadas à taxa de transição de estado compatível, consulte Cotas relacionadas aos controles de utilização de estado.

Sem limite
Preços Preço por número de transições de estado. Uma transição de estado é contada cada vez que uma etapa em sua execução é concluída. Cobrado pelo número de execuções, pela duração de cada uma delas e pelo consumo de memória.
Histórico de execução

As execuções podem ser listadas e descritas com as APIs do Step Functions. As execuções podem ser depuradas visualmente por meio do console. É possível inspecioná-las no CloudWatch Logs ativando o registro em log na sua máquina de estado.

Para obter mais informações sobre como depurar as execuções do fluxo de trabalho padrão no console, consulte Diferenças na experiência do console padrão e expresso e Visualizar execuções do fluxo de trabalho.

Histórico de execução ilimitado, ou seja, não há limite para manutenção de entradas do histórico de execução geradas em um período de 5 minutos.

As execuções podem ser inspecionadas no CloudWatch Logs ou no console do Step Functions ativando o registro em log na sua máquina de estado.

Para obter mais informações sobre como depurar as execuções do fluxo de trabalho expresso no console, consulte Diferenças na experiência do console padrão e expresso e Visualizar execuções do fluxo de trabalho.

Semântica de execução Execução do fluxo de trabalho Exactly-once.

Fluxos de trabalho expressos assíncronos: execução do fluxo de trabalho At-least-once.

Fluxos de trabalho expressos síncronos: execução do fluxo de trabalho At-most-once.

Integrações de serviços Oferece suporte a todas as integrações e padrões de serviço. Oferece suporte a todas as integrações de serviço.
nota

Os fluxos de trabalho expresso não oferecem suporte aos padrões de integração de serviços Job-run (.sync) ou Callback (.waitForTaskToken).

Mapa distribuído Compatível Não compatível
Atividades Compatível Não compatível
Otimizar o tipo de fluxo de trabalho

Para obter uma comparação e um exemplo de análise de impacto de custo, consulte Choosing the workflow type no workshop Large-scale data processing with Step Functions.

Fluxos de trabalho expressos síncronos e assíncronos no Step Functions

Há dois tipos de fluxos de trabalho expresso que você pode escolher: fluxos de trabalho expresso assíncronos e os síncronos.

  • Os fluxos de trabalho expresso assíncronos retornam a confirmação de que o fluxo de trabalho foi iniciado, mas não esperam a conclusão dele. Para obter o resultado, você deve pesquisar o CloudWatch Logs do serviço. Você pode usar os fluxos de trabalho expresso assíncronos quando não precisar de uma saída de resposta imediata, por exemplo, nos serviços de mensagens ou processamento de dados dos quais outros serviços não dependem. Você pode iniciar fluxos de trabalho expresso assíncronos em resposta a um evento, por meio de um fluxo de trabalho aninhado no Step Functions ou usando a chamada de API StartExecution.

  • Os fluxos de trabalho expresso síncronos iniciam um fluxo de trabalho, aguardam a conclusão dele e, em seguida, retornam o resultado. Os fluxos de trabalho expresso síncronos podem ser usados para orquestrar microsserviços. Com os fluxos de trabalho expresso síncronos, você pode desenvolver aplicativos sem a necessidade de desenvolver um código adicional para lidar com erros, novas tentativas ou executar tarefas paralelas. Você pode executar fluxos de trabalho expresso síncronos invocados pelo Amazon API Gateway, AWS Lambda, ou usando a chamada de API StartSyncExecution.

    nota

    Se você executar os fluxos de trabalho expressos do Step Functions de maneira síncrona no console, a solicitação StartSyncExecution vai expirar após sessenta segundos. Para executar os fluxos de trabalho expresso de forma síncrona por até cinco minutos, faça a solicitação StartSyncExecution usando o AWS SDK ou AWS Command Line Interface (AWS CLI) em vez do console do Step Functions.

    As chamadas de API da execução do expresso síncrono não contribuem para os limites existentes de capacidade da conta. O Step Functions fornece a capacidade sob demanda e escala automaticamente com workload sustentada. Os picos na workload podem ser reduzidos até que a capacidade esteja disponível.

Garantias de execução no fluxo de trabalho do Step Functions

Fluxos de trabalho padrão Fluxos de trabalho expresso assíncronos Fluxos de trabalho expresso síncronos
Execução do fluxo de trabalho Exactly-once Execução do fluxo de trabalho At-least-once Execução do fluxo de trabalho At-most-once
O estado de execução persiste internamente entre as transições de estado. O estado de execução não persiste internamente entre as transições de estado. O estado de execução não persiste internamente entre as transições de estado.
Retorna automaticamente uma resposta idempotente ao iniciar uma execução com o mesmo nome de um fluxo de trabalho em execução no momento. O novo fluxo de trabalho não é iniciado e uma exceção é lançada quando o fluxo de trabalho em execução é concluído. A idempotência não é gerenciada automaticamente. Iniciar vários fluxos de trabalho com o mesmo nome resulta em execuções simultâneas. Poderá resultar na perda do estado do fluxo de trabalho interno se a lógica da máquina de estado não for idempotente. A idempotência não é gerenciada automaticamente. O Step Functions espera quando uma execução é iniciada e retorna o resultado da máquina de estado após a conclusão. Os fluxos de trabalho não são reiniciados se ocorrer uma exceção.

Dados do histórico de execução removidos após 90 dias. Os nomes dos fluxos de trabalho podem ser reutilizados após a remoção dos dados de execução desatualizados.

Para atender aos requisitos de conformidade, organizacionais ou regulamentares, você pode reduzir o período de retenção do histórico de execução para 30 dias, enviando uma solicitação de cota. Para fazer isso, use o AWS Support Center Console e crie um novo caso.

O histórico de execução não é capturado pelo Step Functions. O log deve ser ativado por meio do Amazon CloudWatch Logs. O histórico de execução não é capturado pelo Step Functions. O log deve ser ativado por meio do Amazon CloudWatch Logs.