

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á.

# O que é o Step Functions?
<a name="welcome"></a>

**Gerenciar estados e transformar dados**  
Saiba mais sobre como [transmitir dados entre estados com variáveis](workflow-variables.md) e [transformar dados com JSONata](transforming-data.md).

ComAWS Step Functions, você pode criar fluxos de trabalho, também chamados de[Máquinas de estado](concepts-statemachines.md), para criar aplicativos distribuídos, automatizar processos, orquestrar microsserviços e criar pipelines de dados e aprendizado de máquina.

O Step Functions é baseado em *máquinas de estado* e *tarefas*. No Step Functions, as máquinas de estado são chamadas de *fluxos de trabalho*, que são uma série de etapas orientadas a eventos. Cada etapa no fluxo de trabalho é chamada de *estado*. Por exemplo, um [estado de tarefa](state-task.md) representa uma unidade de trabalho que outro AWS serviço executa, como chamar outro AWS service (Serviço da AWS) ou API. As instâncias de fluxos de trabalho em andamento que executam tarefas são chamadas de *execuções* no Step Functions.

O trabalho nas tarefas de máquina de estado também pode ser feito usando [Atividades](concepts-activities.md), que são operadores existentes fora do Step Functions.

![Exemplo ilustrativo de um diagrama de fluxo de trabalho do Step Functions.](http://docs.aws.amazon.com/pt_br/step-functions/latest/dg/images/step-functions-example.png)


No console do Step Functions, é possível **visualizar**, editar e depurar o fluxo de trabalho da aplicação. Você pode examinar o estado de cada etapa no fluxo de trabalho para garantir que a aplicação seja executada em ordem e conforme o esperado. 

Dependendo do seu caso de uso, você pode fazer com que os AWS serviços de chamadas do Step Functions, como o Lambda, executem tarefas. Você pode ter AWS serviços de controle do Step FunctionsAWS Glue, como criar fluxos de trabalho de extração, transformação e carregamento. Além disso, você tem a capacidade de criar fluxos de trabalho automatizados e de longa duração para aplicativos que exigem interação humana. 

Para obter uma lista completa das AWS regiões em que o Step Functions está disponível, consulte a [Tabela de AWS regiões](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

**Saiba como usar o Step Functions**  
Comece com o [Tutorial de inicialização](getting-started.md) neste guia. Para consultar tópicos avançados e casos de uso, consulte os módulos no [Workshop Step Functions](https://catalog.workshops.aws/stepfunctions).

## Tipos de fluxo de trabalho padrão e expresso
<a name="welcome-workflows"></a>

O Step Functions tem dois tipos de fluxo de trabalho: 
+ Os fluxos de trabalho **padrão** são ideais para fluxos de trabalho auditáveis e de longa duração, pois mostram o histórico de execução e a depuração visual. 

  Os fluxos de trabalho padrão têm execução de fluxo de trabalho **única** e podem durar até **um ano**. Isso significa que cada etapa do fluxo de trabalho padrão será executada somente uma vez. 
+ Os fluxos de trabalho **expressos** são ideais para high-event-rate cargas de trabalho, como processamento de dados de streaming e ingestão de dados de IoT.

  Os fluxos de trabalho expressos têm execução **at-least-once**de fluxo de trabalho e podem ser executados por até **cinco minutos.** Isso significa que uma ou mais etapas em um fluxo de trabalho expresso podem ser executadas mais de uma vez, enquanto cada etapa do fluxo de trabalho é executada pelo menos uma vez.


| Fluxos de trabalho padrão | Fluxos de trabalho expressos | 
| --- | --- | 
| Taxa de execução de 2 mil por segundo | Taxa de execução de cem mil por segundo | 
| Taxa de transição de estado de 4 mil por segundo | Taxa de transição de estado quase ilimitada | 
| Cobrança realizada por transição de estado | Cobrança realizada conforme o número e duração das execuções | 
| Exibição do histórico de execução e depuração visual | Exibição do histórico de execução e depuração visual com base no nível de log. | 
| Veja o histórico de execução no Step Functions. | Enviar histórico de execução para [CloudWatch](https://aws.amazon.com/cloudwatch/) | 
| Suporte a integrações com todos os serviços.Suporte a integrações otimizadas com alguns serviços. | Suporte a integrações com todos os serviços.  | 
| Suporte ao padrão de resposta à solicitação para todos os serviços. Support *Run a Job and/or * *Wait for Callback* padrões em serviços específicos (consulte a seção a seguir para obter detalhes) | Suporte ao padrão de resposta à solicitação para todos os serviços. | 

Para ter mais informações sobre os preços do Step Functions e a escolha do tipo de fluxo de trabalho, consulte os seguintes tópicos:
+ [Definição de preços do AWS Step Functions](https://aws.amazon.com/step-functions/pricing/)
+ [Escolher o tipo de fluxo de trabalho no Step Functions](choosing-workflow-type.md)

## Integrar-se a outros serviços da
<a name="welcome-service-integrations"></a>

O Step Functions se integra a vários AWS serviços. Para chamar outros AWS serviços, você pode usar dois tipos de integração:
+ [AWSAs integrações do SDK](supported-services-awssdk.md) fornecem uma maneira de chamar qualquer AWS serviço diretamente de sua máquina de estado, dando acesso a milhares de ações de API.
+ As [integrações otimizadas](integrate-optimized.md) oferecem opções personalizadas para usar esses serviços nas máquinas de estado.

Para combinar o Step Functions com esses serviços, há três **padrões de integração de serviços**:
+  [Resposta à solicitação (padrão)](connect-to-resource.md#connect-default) 

  Chame um serviço e faça o Step Functions avançar para o próximo estado assim que obter uma resposta HTTP.
+ [Executar tarefa (.sync)](connect-to-resource.md#connect-sync)

  Chame um serviço e faça o Step Functions aguardar a conclusão de uma tarefa.
+ [Aguarde um retorno de chamada com um token de tarefa (. waitForTaskSímbolo)](connect-to-resource.md#connect-wait-token)

  Chame um serviço com um token de tarefa e faça o Step Functions esperar até que o token de tarefa responda com um retorno de chamada.

Os fluxos de trabalho padrão e expresso comportam as mesmas **integrações**, mas não os mesmos **padrões de integração**. 
+  Os **fluxos de trabalho padrão** comportam integrações de *resposta a solicitações*. Alguns serviços oferecem suporte a *Run a Job (.sync)* ou *Wait for Callback (). waitForTaskToken)* e ambos em alguns casos. Consulte a tabela de integrações otimizadas a seguir para saber detalhes. 
+  **Os fluxos de trabalho expressos** comportam somente integrações de *resposta à solicitação*. 

 Para ajudar a decidir entre os dois tipos, consulte [Escolher o tipo de fluxo de trabalho no Step Functions](choosing-workflow-type.md). 



**AWSIntegrações de SDK em Step Functions**


| Serviço integrado | Resposta de solicitação | Executar um trabalho: *.sync* | *Aguarde o retorno de chamada -. waitForTaskToken* | 
| --- | --- | --- | --- | 
| [Mais de duzentos serviços](supported-services-awssdk.md#supported-services-awssdk-list) | Padrão e expresso | Sem compatibilidade | Standard | 

**Integrações otimizadas ao Step Functions**


| Serviço integrado | Resposta de solicitação | Executar um trabalho: *.sync* | *Aguarde o retorno de chamada -. waitForTaskToken* | 
| --- | --- | --- | --- | 
| [Amazon API Gateway](connect-api-gateway.md) | Padrão e expresso | Sem compatibilidade | Standard | 
| [Amazon Athena](connect-athena.md) | Padrão e expresso | Standard | Sem compatibilidade | 
| [AWS Batch](connect-batch.md) | Padrão e expresso | Standard | Sem compatibilidade | 
| [Amazon Bedrock](connect-bedrock.md) | Padrão e expresso | Standard | Standard | 
| [AWS CodeBuild](connect-codebuild.md) | Padrão e expresso | Standard | Sem compatibilidade | 
| [Amazon DynamoDB](connect-ddb.md) | Padrão e expresso | Sem compatibilidade | Sem compatibilidade | 
| [Amazon ECS/Fargate](connect-ecs.md) | Padrão e expresso | Standard | Standard | 
| [Amazon EKS](connect-eks.md) | Padrão e expresso | Standard | Standard | 
| [Amazon EMR](connect-emr.md) | Padrão e expresso | Standard | Sem compatibilidade | 
| [Amazon EMR on EKS](connect-emr-eks.md) | Padrão e expresso | Standard | Sem compatibilidade | 
| [Amazon EMR Serverless](connect-emr-serverless.md) | Padrão e expresso | Standard | Sem compatibilidade | 
| [Amazon EventBridge](connect-eventbridge.md) | Padrão e expresso | Sem compatibilidade | Standard | 
| [AWS Glue](connect-glue.md) | Padrão e expresso | Standard | Sem compatibilidade | 
| [AWS Glue DataBrew](connect-databrew.md) | Padrão e expresso | Standard | Sem compatibilidade | 
| [AWS Lambda](connect-lambda.md) | Padrão e expresso | Sem compatibilidade | Standard | 
| [AWS Elemental MediaConvert](connect-mediaconvert.md) | Padrão e expresso | Standard | Sem compatibilidade | 
| [Amazon SageMaker AI](connect-sagemaker.md) | Padrão e expresso | Standard | Sem compatibilidade | 
| [Amazon SNS](connect-sns.md) | Padrão e expresso | Sem compatibilidade | Standard | 
| [Amazon SQS](connect-sqs.md) | Padrão e expresso | Sem compatibilidade | Standard | 
| [AWS Step Functions](connect-stepfunctions.md) | Padrão e expresso | Standard | Standard | 

## Exemplos de caso de uso para fluxos de trabalho
<a name="application"></a>

O Step Functions gerencia os componentes e a lógica do aplicativo para que você possa escrever menos código e se concentrar na criação e atualização rápida de aplicativos. A imagem a seguir mostra seis casos de uso de fluxos de trabalho do Step Functions.

![Exemplos visuais de seis casos de uso comuns de fluxo de trabalho, descritos no texto a seguir.](http://docs.aws.amazon.com/pt_br/step-functions/latest/dg/images/use-case-examples.png)




1. **Orquestrar tarefas**: é possível criar fluxos de trabalho que orquestram uma série de tarefas, ou *etapas*, em uma ordem específica. Por exemplo, a *Tarefa A* pode ser uma função do Lambda que oferece entradas para outra função do Lambda na *Tarefa B*. A última etapa do fluxo de trabalho apresenta o resultado final.

1. **Escolher tarefas com base em dados**: usando o estado `Choice`, é possível fazer com que o Step Functions tome decisões com base na entrada do estado. Por exemplo, imagine que um cliente solicite um aumento do limite de crédito. Se a solicitação for maior do que o limite de crédito pré-aprovado para o cliente, faça o Step Functions enviar a solicitação do cliente para a aprovação do gerente. Se a solicitação for menor do que o limite de crédito pré-aprovado para o cliente, faça o Step Functions aprovar automaticamente a solicitação.

1. **Tratar erros** (`Retry`/`Catch`): é possível repetir ou capturar tarefas com falha e executar etapas alternativas automaticamente.

   Por exemplo, depois que um cliente solicita um nome de usuário, a primeira chamada para o serviço de validação pode falhar, então o fluxo de trabalho pode repetir a solicitação. Quando a segunda solicitação for bem-sucedida, o fluxo de trabalho poderá prosseguir.

   Ou talvez o cliente tenha solicitado um nome de usuário inválido ou indisponível. Uma declaração `Catch` pode levar a uma etapa do fluxo de trabalho do Step Functions que sugira um nome de usuário alternativo.

   Para ter exemplos de `Retry` e `Catch`, consulte [Tratar erros em fluxos de trabalho do Step Functions](concepts-error-handling.md).

1. **Adicionar seres humanos no processo**: o Step Functions pode incluir etapas de aprovação humana no fluxo de trabalho. Por exemplo, imagine que um cliente bancário tente enviar fundos a um amigo. Com [um retorno de chamada e um token de tarefa](connect-to-resource.md#connect-wait-token), é possível fazer com que o Step Functions espere até que o amigo do cliente confirme a transferência, para que então o Step Functions continue o fluxo de trabalho para notificar o cliente bancário de que a transferência foi concluída.

   Para ver um exemplo, consulte [Criar um exemplo de padrão de retorno de chamada com o Amazon SQS, o Amazon SNS e o Lambda](callback-task-sample-sqs.md). 

1. **Processar dados em etapas paralelas**: usando um estado `Parallel`, o Step Functions pode processar dados de entrada em etapas paralelas. Por exemplo, o cliente pode precisar converter um arquivo de vídeo em várias resoluções de exibição para que os espectadores possam assistir ao vídeo em vários dispositivos. Seu fluxo de trabalho pode enviar o arquivo de vídeo original para várias funções do Lambda ou usar a AWS Elemental MediaConvert integração otimizada para processar um vídeo em várias resoluções de exibição ao mesmo tempo.

1. **Processar elementos de dados de modo dinâmico**: usando um estado `Map`, o Step Functions pode executar um conjunto de etapas do fluxo de trabalho em cada item em um conjunto de dados. As iterações são executadas em paralelo, o que possibilita o processamento rápido de um conjunto de dados. Por exemplo, quando o cliente solicita trinta itens, o sistema precisa aplicar o mesmo fluxo de trabalho para preparar cada item para entrega. Depois que todos os itens forem coletados e embalados para entrega, a próxima etapa pode ser enviar rapidamente ao cliente um e-mail de confirmação com as informações de rastreamento.

   Para ver um exemplo de **modelo inicial**, consulte [Processar dados com um mapa](sample-map-state.md).