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 -