Usando a função Lambda com aplicativos de usuário personalizados
Podemos usar a função lambda da AWS para processar usando eventos gerados pelo aplicativo do usuário das duas maneiras a seguir -
- Usando o AWS Console
- Usando AWS CLI
Usando o AWS Console
No console da AWS, trabalharemos com eventos e AWS Lambda. Para isso, vá para o console da AWS e crie uma função lambda.
A seguir, vamos adicionar o código para AWS Lambda -
exports.handler = (event, context, callback) => {
// TODO implement
console.log("Hello => "+ event.name);
console.log("Address =>"+ event.addr);
callback(null, 'Hello '+event.name +" and address is "+ event.addr);
};
Observe que no código acima, estamos imprimindo nome e endereço usando evento.
Os detalhes do evento serão fornecidos usando o evento de teste criado da seguinte forma -
Agora, salve o evento e teste-o.
A saída de log correspondente é mostrada aqui -
Usando AWS CLI
Podemos invocar a função acima usando AWS CLI da seguinte maneira -
aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\input.txt C:\clioutput\outputfile.txt
Os detalhes do evento são fornecidos para a carga útil e a saída é armazenada em C:\clioutput\outputfile.txt. como segue -
input.txt
{"name":"Roy Singh", "addr":"Mumbai"}
Ao invocar o Lambda usando AWS CLI, você pode ver que a saída é a seguinte -
Da mesma forma, caso queira testar o AWS Lambda para qualquer outro serviço da AWS, você pode fazer isso usando o evento de teste no console da AWS e AWS CLI. Um exemplo de evento para o serviço SNS é mostrado abaixo -
{
"Records": [{
"EventVersion": "1.0",
"EventSubscriptionArn": "arnid",
"EventSource": "aws:sns",
"Sns": {
"SignatureVersion": "1",
"Timestamp": "1970-01-01T00:00:00.000Z",
"Signature": "EXAMPLE",
"SigningCertUrl": "EXAMPLE",
"MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
"Message": "Hello from SNS!",
"MessageAttributes": {
"Test": {
"Type": "String",
"Value": "TestString"
},
"TestBinary": {
"Type": "Binary",
"Value": "TestBinary"
}
},
"Type": "Notification",
"UnsubscribeUrl": "EXAMPLE",
"TopicArn": "topicarn",
"Subject": "TestInvoke"
}
}]
}
Vamos adicionar o evento de amostra mostrado acima e testá-lo conforme mostrado -
No AWS Lambda, o código imprimirá a mensagem SNS conforme mostrado no exemplo abaixo -
exports.handler = (event, context, callback) => {
// TODO implement
console.log(event.Records[0].Sns.Message);
callback(null, event.Records[0].Sns.Message);};
Vamos invocar o mesmo usando AWS CLI. Vamos salvar o evento em um arquivo e usá-lo para carga usando o comando mostrado -
aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt