Como criar uma máquina de estado Step Functions que usa Lambda - 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á.

Como criar uma máquina de estado Step Functions que usa Lambda

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

nota

O Step Functions é baseado em máquinas e tarefas de estado. Em Step Functions, as máquinas de estado são chamadas de fluxos de trabalho, que são uma série de etapas orientadas por eventos. Cada etapa em um fluxo de trabalho é chamada de estado. Por exemplo, um estado de tarefa representa uma unidade de trabalho que outra AWS o serviço é executado, como ligar para outro AWS service (Serviço da AWS) ouAPI. As instâncias de fluxos de trabalho em execução executando tarefas são chamadas de execuções em Step Functions.

Para obter mais informações, consulte:

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 AWS Management Console ou 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

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 sob a mesma AWS conta e Região da AWS como sua máquina estatal.

  1. Abra o console do Lambda e clique em Criar função.

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

  3. Em Function name (Nome da função), insira HelloFunction.

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

  5. Depois que sua função Lambda for criada, copie o Amazon Resource Name (ARN) da função exibido no canto superior direito da página. Veja a seguir um exemploARN:

    arn:aws:lambda:us-east-1:123456789012:function:HelloFunction
  6. Copie o código a seguir para a função Lambda na seção Fonte de código do HelloFunctionpá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. O método callback retorna saudação montada em sua função.

  7. Escolha Implantar.

Etapa 2: testar a função do Lambda

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

  1. Escolha Testar.

  2. Em Nome do evento, insira HelloEvent.

  3. Substitua JSON os dados do evento pelos seguintes.

    { "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.

  4. Escolha Salvar e Testar.

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

Etapa 3: Criar uma máquina de estado

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.

  1. Abra o console do Step Functions e clique em Criar máquina de estado.

    Importante

    Certifique-se de que sua máquina de estado esteja sob a mesma AWS conta e região como a função Lambda que você criou anteriormente.

  2. Na caixa de diálogo Escolher um modelo, selecione Em branco.

  3. Escolha Selecionar para abrir o Workflow Studio emModo de design.

  4. No States browser (Navegador de estados) à esquerda, verifique se você escolheu a guia Ações. Em seguida, arraste e solte o AWS Lambda Invoque API para o estado vazio chamado Arraste o primeiro estado aqui.

  5. No painel Inspector à direita, configure a função do Lambda:

    1. Na seção APIParâmetros, escolha a função Lambda que você criou anteriormente na lista suspensa Nome da função.

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

  6. (Opcional) Escolha Definição para ver a definição da máquina de estado Amazon States Language (ASL), que é gerada automaticamente com base nas suas seleções na guia Ações e no painel Inspetor.

  7. 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 deve conter nenhum dos seguintes itens:

    • Espaço em branco

    • Caracteres curinga (? *)

    • Caracteres de colchete (< > { } [ ])

    • Caracteres especiais (" # % \ ^ | ~ ` $ & , ; : /)

    • caracteres de controle (\\u0000 - \\u001f ou \\u007f - \\u009f).

    Step Functions aceita nomes para máquinas de estado, execuções, atividades e rótulos que não contêm ASCII caracteres. Como esses caracteres não funcionarão com a Amazon CloudWatch, recomendamos usar somente ASCII caracteres para que você possa acompanhar as métricas CloudWatch.

  8. (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.

  9. Escolha Criar.

  10. 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 a IAM função criada pelo Step Functions, o Step Functions não poderá recriá-la posteriormente. Da mesma forma, se você modificar a função (por exemplo, removendo Step Functions dos principais na IAM política), o Step Functions não poderá restaurar suas configurações originais posteriormente.

Etapa 4: Executar a máquina de estado

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

  1. Na página State machines, escolha LambdaStateMachine.

  2. Selecione Iniciar execução.

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

  3. (Opcional) Insira um nome de execução personalizado para substituir o padrão gerado.

    ASCIINão-nomes e registro

    Step Functions aceita nomes para máquinas de estado, execuções, atividades e rótulos que não contêm ASCII caracteres. Como esses caracteres não funcionarão com a Amazon CloudWatch, recomendamos usar somente ASCII caracteres para que você possa acompanhar as métricas CloudWatch.

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

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

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

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 Invocar um AWS Lambda função com Step Functions.