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