

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

# Como criar uma máquina de estado Step Functions que usa Lambda
<a name="tutorial-creating-lambda-state-machine"></a>

Neste tutorial, você criará um fluxo de trabalho de uma única etapa usando AWS Step Functions para invocar uma AWS Lambda função.

**nota**  
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 uma API. As instâncias de fluxos de trabalho em andamento que executam tarefas são chamadas de *execuções* no Step Functions.  
Para obter mais informações, consulte:  
[O que é o Step Functions?](welcome.md)
[Integrar serviços ao Step Functions](integrate-services.md)

O Lambda é adequado para `Task` estados, pois as funções do Lambda têm a *tecnologia sem servidor* e fáceis de escrever. Você pode escrever código no editor Console de gerenciamento da AWS ou no seu editor favorito. AWS trata dos detalhes de fornecer um ambiente de computação para sua função e executá-la.

## Etapa 1: criar uma função do Lambda
<a name="create-lambda-function"></a>

Sua função do Lambda recebe dados do evento e retorna uma mensagem de saudação.

**Importante**  
Certifique-se de que sua função Lambda esteja na mesma AWS conta e em sua máquina Região da AWS de estado.

1. Abra o [console do Lambda](https://console.aws.amazon.com/lambda/home) e clique em **Criar função**.

1. Na página **Create function**, selecione **Author from scratch**.

1. Em **Function name** (Nome da função), insira `HelloFunction`.

1. Mantenha todas as seleções-padrão na página e escolha **Criar função**. 

1. Depois que a função do Lambda foi criada, copie o nome do recurso da Amazon (ARN) da função exibido no canto superior direito da página. A seguir está um exemplo de ARN.

   ```
   arn:aws:lambda:region:123456789012:function:HelloFunction
   ```

1. Copie o código a seguir para a função Lambda na seção **Código-fonte** da ***HelloFunction***página.

   ```
   export const handler = async(event, context, callback) => {
       callback(null, "Hello from " + event.who + "!");
   };
   ```

   Esse código monta uma saudação usando o campo `who` dos dados de entrada, que são fornecidos pelo `event` objeto passado para sua função. Você poderá adicionar dados de entrada para essa função mais tarde, ao [iniciar uma nova execução](#start-lambda-function). O método `callback` retorna saudação montada em sua função.

1. Escolha **Implantar**.

## Etapa 2: testar a função do Lambda
<a name="test-lambda-function"></a>

Teste a função do Lambda para vê-la em operação.

1. Escolha **Testar**.

1. Em **Nome do evento**, insira `HelloEvent`.

1. Substitua os dados do **JSON do Evento** pelo seguinte:

   ```
   {
       "who": "AWS Step Functions"
   }
   ```

   A entrada `"who"` corresponde ao campo `event.who` na função do Lambda e completa a saudação. Você vai inserir os mesmos dados de entrada ao executar sua máquina de estado.

1. Escolha **Salvar** e **Testar**.

1. Para analisar os resultados do teste, em **Execution result** (Resultado da execução), expanda **Details** (Detalhes). 

## Etapa 3: Criar uma máquina de estado
<a name="create-state-machine-step"></a>

Use o console do Step Functions para criar uma máquina de estado que invoca uma função do Lambda que você criou na [Etapa 1](#create-lambda-function).

1. Abra o [console do Step Functions](https://console.aws.amazon.com/states/home). No menu, selecione **Máquinas de estado** e, em seguida, selecione **Criar máquina de estado**.
**Importante**  
Certifique-se de que sua máquina de estado esteja na mesma AWS conta e região da função Lambda que você criou anteriormente.

1. Selecione **Criar do zero**.

1. Nomeie sua máquina de estado e clique em **Continuar** para editá-la no Workflow Studio.

1. No [States browser](workflow-studio.md#workflow-studio-components-states) (Navegador de estados) à esquerda, verifique se você escolheu a guia **Ações**. Arraste e solte a API **Invocação do AWS Lambda ** no estado vazio chamado **Arrastar primeiro estado aqui**.

1. No painel [Inspector](workflow-studio.md#workflow-studio-components-formdefinition) à direita, configure a função do Lambda:

   1. Na seção **Parâmetros da API**, escolha [a função do Lambda criada antes](#create-lambda-function) na lista suspensa **Nome da função**.

   1. retenha a seleção-padrão na lista suspensa **Carga útil**.

1. (Opcional) Selecione **Definição** para ver a definição de [Amazon States Language](concepts-amazon-states-language.md) (ASL) da máquina de estado, gerada automaticamente com base em suas seleções nas guias **Ações** e no painel **Inspetor**.

1. Especifique um nome para a máquina de estado. Para fazer isso, escolha o ícone de edição ao lado do nome padrão da máquina de estado de **MyStateMachine**. Em seguida, em **Configuração da máquina de estado**, insira um nome na caixa **Nome da máquina de estado**.

   Por exemplo, insira o nome **LambdaStateMachine**.
**nota**  
Os nomes das máquinas de estado, execuções e tarefas de atividade não devem exceder oitenta caracteres. Esses nomes devem ser exclusivos para sua conta e AWS região e não devem conter nenhum dos seguintes itens:  
Espaço em branco
Caracteres curinga (`? *`)
Caracteres de colchete (`< > { } [ ]`)
Caracteres especiais (`" # % \ ^ | ~ ` $ & , ; : /`)
caracteres de controle (`\\u0000` - `\\u001f` ou `\\u007f` - `\\u009f`).
O Step Functions aceita nomes de máquina de estado, execuções, atividades e rótulos que contenham caracteres não ASCII. Como esses caracteres impedirão que a Amazon CloudWatch registre dados, recomendamos usar somente caracteres ASCII para que você possa acompanhar as métricas do Step Functions.

1. (Opcional) Em **Configuração da máquina de estado**, especifique outras configurações do fluxo de trabalho, como o tipo de máquina de estado e a função de execução.

   Para este tutorial, mantenha todas as seleções padrão nas **Configurações da máquina de estado**.

1. Escolha **Criar**.

1. Na caixa de diálogo **Confirmar criação do perfil**, selecione **Confirmar** para continuar.

   Você também pode escolher **Exibir configurações do perfil** para voltar às **Configurações da máquina de estado**.
**nota**  
Se você excluir o perfil do IAM criado pelo Step Functions, não será possível recriá-lo posteriormente. Da mesma forma, se você modificar a função (por exemplo, removendo o Step Functions das entidades principais na política do IAM), o Step Functions não poderá restaurar as configurações originais dela posteriormente. 

## Etapa 4: Executar a máquina de estado
<a name="start-lambda-function"></a>

Depois que você criar uma máquina de estado, poderá executá-la.

1. Na página **State Machines**, escolha **LambdaStateMachine**.

1. Selecione **Iniciar execução**.

   A caixa de diálogo **Iniciar execução** é exibida.

1. (Opcional) Insira um nome de execução personalizado para substituir o padrão gerado.
**Nomes e registro em log não ASCII**  
O Step Functions aceita nomes de máquina de estado, execuções, atividades e rótulos que contenham caracteres não ASCII. Como esses caracteres impedirão que a Amazon CloudWatch registre dados, recomendamos usar somente caracteres ASCII para que você possa acompanhar as métricas do Step Functions.

1. Na área **Entrada**, substitua os dados de exemplo pelo que é exibido a seguir.

   ```
   {
       "who" : "AWS Step Functions"
   }
   ```

    `"who"` é o nome da chave que a função do Lambda usa para obter o nome da pessoa a ser cumprimentada.

1. Escolha **Start Execution**.

   A execução da máquina de estado começa e uma nova página mostrando a execução em andamento é exibida.

1. O console do Step Functions direciona você para uma página em que o título é o ID da execução. Essa página é conhecida como página de *Detalhes da execução*. Nesta página, você pode revisar os resultados da execução à medida que a execução avança ou após a conclusão.

   Para revisar os resultados da execução, escolha estados individuais na **Exibição em gráfico** e, em seguida, escolha as guias individuais no painel [Detalhes da etapa](concepts-view-execution-details.md#exec-details-intf-step-details) para visualizar os detalhes de cada estado, incluindo entrada, saída e definição, respectivamente. Para obter detalhes sobre as informações de execução que você pode visualizar na página *Detalhes da execução*, consulte [Visão geral dos detalhes da execução](concepts-view-execution-details.md#exec-details-interface-overview).

**nota**  
Você também pode transmitir cargas ao invocar o Lambda de uma máquina de estado. Para obter mais informações e exemplos sobre como invocar o Lambda passando a carga no campo `Parameters`, consulte [Invoque uma AWS Lambda função com Step Functions](connect-lambda.md).