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

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

Neste tutorial, você vai criar um fluxo de trabalho de uma só etapa usando AWS Step Functions para invocar uma função do AWS Lambda.

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 representa uma unidade de trabalho que outro serviço da AWS realiza, 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.

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. É possível escrever o código no Console de gerenciamento da AWS ou no editor de sua preferência. A AWS gerencia os detalhes relacionados ao fornecimento de um ambiente de computação para sua função e para 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

Verifique se a função do Lambda está na mesma conta da AWS e na mesma Região da AWS que a máquina de estado.

  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. A seguir está um exemplo de ARN.

    arn:aws:lambda:region:123456789012:function:HelloFunction
  6. Copie o código a seguir para a função do Lambda para a seção Origem do código da página HelloFunction.

    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. No menu, selecione Máquinas de estado e, em seguida, selecione Criar máquina de estado.

    Importante

    Verifique se a máquina de estado está na mesma conta AWS e Região que a função do Lambda criada antes.

  2. Selecione Criar do zero.

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

  4. No States browser (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.

  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) Selecione Definição para ver a definição de Amazon States Language (ASL) da máquina de estado, gerada automaticamente com base em suas seleções nas guias Ações e no painel Inspetor.

  7. Especifique um nome para a máquina de estado. Para fazer isso, clique no ícone de edição ao lado do nome da máquina de estado padrão 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 a conta e a região da AWS 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 não permitem que o Amazon CloudWatch registre dados em log, recomendamos usar somente caracteres ASCII para monitorar as métricas do Step Functions.

  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 Máquinas de estado, 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.

    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 não permitem que o Amazon CloudWatch registre dados em log, recomendamos usar somente caracteres ASCII para monitorar as métricas do Step Functions.

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