Construindo a Função Lambda

A função AWS Lambda executa um código quando é chamada. Este capítulo discute todas essas etapas envolvidas no ciclo de vida da função do AWS Lambda em detalhes.

Etapas para construir uma função Lambda

O ciclo de vida da função Lambda inclui quatro etapas necessárias -

  • Authoring
  • Deploying
  • Monitoring
  • Troubleshooting

Código Lambda de Autoria

O código de função do AWS Lambda pode ser escrito nas seguintes linguagens -

  • NodeJS
  • Java,
  • Python
  • C#
  • Go.

Podemos escrever código para AWS Lambda usando o console AWS, AWS CLI, do Eclipse IDE, do Visual Studio IDE, estrutura sem servidor, etc.

A tabela a seguir mostra uma lista de linguagens e as diferentes ferramentas e IDE que podem ser usados ​​para escrever a função Lambda -

Língua IDE para autoria de código Lambda
NodeJS

AWS Lambda Console

IDE do Visual Studio

Java IDE Eclipse
Pitão AWS Lambda Console
C #

IDE do Visual Studio

.NET core

Vai AWS Lambda Console

Implantando Código Lambda

Depois de decidir a linguagem que deseja escrever a função Lambda, existem duas maneiras de implantar o código -

  • Escreva diretamente o código no console AWS
  • Compacte ou jar os arquivos com todos os arquivos e dependências

No entanto, lembre-se de que a permissão adequada deve ser dada ao arquivo zip.

Testando Código Lambda

O Código Lambda pode ser testado para eventos dentro do console AWS Lambda. Também é possível testar a função Lambda do AWS cli e serverless cli. O console da AWS também possui dados de eventos que podem ser usados ​​como exemplos de eventos durante o teste da função AWS Lambda.

Monitorando a função Lambda

O monitoramento da função Lambda pode ser feito usando o AWS CloudWatch. Podemos adicionar mensagens de log necessárias em idiomas que escolhemos e ver o mesmo no AWS CloudWatch.

Para começar a escrever a função Lambda, há um padrão a ser seguido. A seguir estão os principais conceitos básicos a serem seguidos para escrever uma função Lambda -

Handler

Handler é um nome da função lambda da AWS de onde a execução começa. Ele aparece no console AWS conforme mostrado abaixo -

Observe que aqui alteramos o manipulador padrão para outro nome e atualizamos o mesmo no manipulador -

Observe que a forma como um manipulador é chamado difere dos idiomas selecionados como tempo de execução.

Params passou para handler

Se você observar a função do manipulador, os parâmetros passados ​​são event, context e call back function como mostrado abaixo -

Event parâmetro tem todos os detalhes para o gatilho usado.

ContextO parâmetro basicamente cuida dos detalhes do tempo de execução para a função Lambda executar. Podemos interagir com a função Lambda usando ocontextparam. Ele tem detalhes como o tempo restante antes que o AWS Lambda termine uma função, ou seja, o tempo limite especificado durante a criação da função Lambda, o nome da função Lambda, o nome do grupo cloudwatch, detalhes de arn etc.

Exemplo

Vamos entender os detalhes obtidos do objeto de contexto AWS Lambda com a ajuda de um exemplo -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   console.log("context object details");
   console.log(JSON.stringify(context));
   callback(null, 'Lambda test');
};

Ao executar a função Lambda mostrada acima, você pode ver a seguinte saída -

Resultado

o context os detalhes são fornecidos a seguir -

{
   "callbackWaitsForEmptyEventLoop":true,"logGroupName":"/aws/lambda/myfirstlambdafunction",
   "logStreamName":"2018/05/20/[$LATEST]04f17ee4ff7048d5bb1fedffaa807c71","functionName":
   "myfirstlambdafunction","memoryLimitInMB":"128","functionVersion":"$LATEST","invokeid":
   "c931e21c-5bf3-11e8-acfe-47fdbb39eee9","awsRequestId":"c931e21c-5bf3-11e8-acfe-47fdbb39eee9",
   "invokedFunctionArn":"arn:aws:lambda:us-east-1:625297745038:function:myfirstlambdafunction"
}

Observe que ele tem detalhes como functionName, memorylimit, requestId etc.

Exploração madeireira

Os logs adicionados dentro da função Lambda são exibidos no AWS CloudWatch quando a função AWS é executada. A sintaxe dos registros varia de acordo com o idioma selecionado. Por exemplo emnodejs, é console.log.

Esta é a saída que você pode ver em AWSCloudWatch -

Manipulação de erros

A função AWS Lambda fornece uma função de retorno de chamada que é usada para notificar a função Lambda que ocorreu um erro ou sucesso. Observe que aqui usamos nodejs como o tempo de execução. O tratamento de erros será diferente de acordo com o idioma selecionado.

Observe o exemplo dado aqui para uma melhor compreensão -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   var error = new Error("There is error in code");
   callback(error);
};

Resultado

Ao testar o código Lambda, você pode encontrar a saída conforme mostrado abaixo -

Os detalhes do log da seguinte forma -