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 uma 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 outro AWS serviço executa, como chamar outro AWS service (Serviço da AWS) ou uma API.

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

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 AWS região da sua máquina estadual.

  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 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. Para copiar o ARN, clique em copy Amazon Resource Name . A seguir está um exemplo de ARN.

    arn:aws:lambda:us-east-1:123456789012:function:HelloFunction
  6. Copie o código a seguir para a função Lambda na seção Código-fonte da 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 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.

  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 na mesma AWS conta e região da função Lambda que você criou anteriormente.

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

  3. Escolha Selecionar. Isso abre o Workflow Studio no Modo de design.

  4. No States browser (Navegador de estados) à esquerda, verifique se você escolheu a guia Ações. Então, faça o seguinte:

    1. Arraste e solte a API Invocação AWS Lambda no estado vazio chamado Arrastar primeiro estado aqui.

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

    1. Na seção Parâmetros da API, escolha a função do Lambda criada antes 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 de Amazon States Language (ASL) da máquina de estado, que é gerada automaticamente com base nas suas seleções nas guias 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 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).

    Se sua máquina de estado for do tipo Express, você poderá fornecer o mesmo nome para várias execuções da máquina de estado. O Step Functions gera um ARN de execução exclusivo para cada execução de máquina de estado Express, mesmo que várias execuções tenham o mesmo nome.

    Step Functions permite criar nomes para máquinas de estado, execuções e atividades, além de rótulos que contenham caracteres não ASCII. Esses nomes não ASCII não funcionam com a Amazon. CloudWatch Para garantir que você possa acompanhar CloudWatch as métricas, escolha um nome que use somente caracteres ASCII.

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

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) Para identificar a execução, insira um nome para ela no campo Nome. Por padrão, o Step Functions cria automaticamente um nome de execução exclusivo.

    nota

    Step Functions permite criar nomes para máquinas de estado, execuções e atividades, além de rótulos que contenham caracteres não ASCII. Esses nomes não ASCII não funcionam com a Amazon. CloudWatch Para garantir que você possa acompanhar CloudWatch as métricas, escolha um nome que use somente caracteres ASCII.

  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 Página de Detalhes da execução — Visão geral da interface.

    A guia Saída do painel de Detalhes da etapa exibe a saída retornada da execução da máquina de estado.
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 o Lambda com o Step Functions.