Como invocar um lambda com função de etapa

Como invocar um lambda com função de etapa

“Uma função de etapa pode ser usada para controlar os serviços da AWS usando o idioma do estado da Amazon. A função AWS STEP também é um serviço sem servidor, assim como as funções Lambda, mas pode ser usado para executar várias tarefas em uma sequência ou em paralelo. A função de etapa é baseada na máquina de estado, e a tarefa e a máquina de estado são apenas os fluxos de trabalho do seu aplicativo. Uma função de etapa pode ser usada para executar várias tarefas, invocando a função Lambda, dependendo do seu caso de uso. Neste blog, estudaremos como invocar a função Lambda com a função de etapa.”

Criando função lambda

A primeira coisa que você precisa fazer é criar uma função Lambda que será invocada pela função de etapa. Neste blog, usaremos o básico Olá de Lambda Código fornecido pela AWS para invocar a função Lambda com a função de etapa.

A função Hello World Lambda tem o seguinte código, que apenas retorna conteúdo estático quando invocado.

importar json
def lambda_handler (evento, contexto):
# TODO Implementar
retornar
'StatusCode': 200,
'corpo': json.despejos ('Olá de Lambda!')

Criando o papel do IAM para a função de etapa

Para invocar a função Lambda usando a função de etapa, primeiro, você precisa fornecer as permissões necessárias da função de etapa. Para isso, você precisa criar um papel de IAM para a função de etapa, que concede as permissões de função de etapa para invocar a função Lambda. Para criar o papel do IAM, siga as etapas abaixo.

  • Vá para o seu painel IAM
  • No canto esquerdo do seu console, clique no Papéis botão
  • Clique no criar papel botão
  • Selecione Serviços da AWS como o tipo de entidade confiável
  • Debaixo de Caso de uso Opção, selecione a função de etapa
  • Em seguida, clique no próximo botão
  • No Adicione permissão Janela, ele selecionará automaticamente a política de IAM necessária. Você só precisa clicar no botão Next
  • Proporciona a nome do papel o que você quiser e clique no Crie o botão de função Para criar o papel

Criando função de etapa

Depois de criar o papel do IAM para a função de etapa, agora crie um função de etapa que será usado para invocar a função Lambda. Para isso, primeiro, vá para o console da função de etapa e clique no Crie Máquina de Estado botão para começar a criar a máquina de estado. A AWS fornece as duas maneiras seguintes de criar a máquina de estado e discutiremos os dois métodos para criar a máquina de estado neste blog.

  • Projete seu fluxo de trabalho visualmente
  • Escreva seu fluxo de trabalho no código (Amazon States Language)

Projete seu fluxo de trabalho visualmente

Este método é novo e muito mais fácil do que escrever seu fluxo de trabalho no código, porque você não precisa escrever nenhum código. AWS fornece o bloco visual para o seu fluxo de trabalho e você só precisa arrastá -los e definir seus parâmetros. AWS cria automaticamente o código ASL para o seu fluxo de trabalho. As etapas a seguir definem como podemos criar uma função de etapa visualmente.

  • Vá para o seu painel de função de etapa do console de gerenciamento da AWS
  • Clique no Criar Máquina de Estado botão do console
  • Debaixo de Escolha o método de autoria, Selecione Projete seu fluxo de trabalho visualmente
  • Na seção Tipo, selecione a opção padrão
  • Clique no Próximo botão
  • Agora, você conseguirá a janela onde projetaremos o fluxo de trabalho para nossa máquina de estado visualmente
  • No seu lado esquerdo, ele mostrará o Opção de invocação da AWS Lambda. Clique e arraste -o para o centro do console, onde está escrito; Arraste o primeiro estado aqui
  • No lado direito da janela, você pode ver a configuração do Lambda Invoke
  • No nome do estado, digite Lambda Invoke
  • Na integração tipo seção, escolha o otimizado
  • Em seguida, vá para o Seção de parâmetros da API
  • Debaixo de Nome da função, Clique no Escolha uma guia de opção, onde você encontrará a função Lambda que deseja invocar
  • Debaixo de carga útil opção, escolha usar o estado de entrada como carga útil.
  • Sob Próximo estado, selecione os Vá para a opção final
  • Clique no próximo botão no canto superior direito
  • No Código gerado por revisão Janela, você pode ver que a AWS gera automaticamente a definição de idioma do estado da máquina de estado. Além disso, gerar o fluxo de trabalho da sua função de etapa
  • Clique no Próximo botão
  • Agora você vai conseguir o Especifique a máquina de estado Janela de configuração
  • Forneça um nome de máquina de estado, o que quiser
  • Debaixo de permissões, Clique no Escolha um papel existente Caixa de seleção
  • Selecione o papel do IAM que criamos na etapa anterior
  • Role para baixo até o final da página e clique no Crie Máquina de Estado botão para criar a máquina de estado

Escreva seu fluxo de trabalho no idioma da Amazon States

A segunda maneira de criar a máquina do estado é escrever seu fluxo de trabalho no código. Você vai escrever o fluxo de trabalho em Amazon States Language (ASL). Ao criar a máquina de estado, escolha escrever Seu fluxo de trabalho no código na definição seção de máquinas de estado. Você pode usar o seguinte código de idioma da Amazon States para invocar a função Lambda.


"Startat": "Call_lambda",
"Estados":
"Call_lambda":
"Tipo": "Tarefa",
"Recurso": "ARN: AWS: Lambda: AP-South-1: XXXXXX: FUNÇÃO: Invocar_lambda",
"End": verdadeiro


Na definição acima, você usará o Arn da sua função lambda no campo de recursos. Você pode obter a função Lambda Arn do console Lambda.

Invoque a função Lambda

Depois de criar a máquina de estado, você precisa iniciar a execução. Clique na função de etapa e mostrará todas as configurações da função de etapa lá. Para iniciar a execução da função de etapa, clique no Inicie o botão de execução.


Você pode fornecer o nome e a entrada para a execução que você vai começar, mas é opcional.

Sob status de execução, Você pode verificar o status da função de etapa que invocava a função Lambda. Vá para o inspetor de gráfico e clique no Lambda Invoke, E no canto direito do console, você receberá os detalhes, a guia de entrada e saída. Clique no entrada guia e você pode ver a entrada da execução. Agora clique no saída guia, e você verá a saída da função de etapa. É assim que sua função lambda é invocada com a função de etapa.

Conclusão

Neste blog, estudamos como invocar a função lambda com a função de etapa. A função de etapa e a função Lambda são recursos sem servidor pela AWS. Uma função de etapa também pode ser usada para controlar os outros serviços da AWS como SNS, S3 e SNS, etc. Aprendemos as diferentes maneiras de criar máquinas de estado, eu.e., projetando seu fluxo de trabalho visualmente e projetando o fluxo de trabalho usando o código. Projetar o fluxo de trabalho visualmente é uma maneira nova e fácil de começar com as funções de etapas da AWS.