Utilisation de la fonction Lambda avec des applications utilisateur personnalisées

Nous pouvons utiliser la fonction AWS lambda pour traiter à l'aide d'événements générés par l'application utilisateur des deux manières suivantes:

  • Utilisation d'AWS Console
  • Utilisation de l'AWS CLI

Utilisation d'AWS Console

À partir de la console AWS, nous travaillerons avec des événements et AWS Lambda. Pour cela, accédez à la console AWS et créez une fonction lambda.

Ensuite, ajoutons le code pour 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);
};

Notez que dans le code ci-dessus, nous imprimons le nom et l'adresse en utilisant l'événement.

Les détails de l'événement seront donnés en utilisant l'événement de test créé comme suit -

Maintenant, enregistrez l'événement et testez-le.

La sortie de journal correspondante est comme indiqué ici -

Utilisation de l'AWS CLI

Nous pouvons appeler la fonction ci-dessus à l'aide de l'AWS CLI comme suit -

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\input.txt C:\clioutput\outputfile.txt

Les détails de l'événement sont donnés à la charge utile et la sortie est stockée à C:\clioutput\outputfile.txt. comme suit -

input.txt

{"name":"Roy Singh", "addr":"Mumbai"}

Lors de l'appel de Lambda à l'aide de l'AWS CLI, vous pouvez voir que la sortie est la suivante:

De même, si vous souhaitez tester AWS Lambda pour tout autre service AWS, vous pouvez le faire à l'aide de l'événement de test dans la console AWS et l'AWS CLI. Un exemple d'événement pour le service SNS est présenté ci-dessous -

{
   "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"
      }
   }]
}

Ajoutons l'exemple d'événement ci-dessus et testons-le comme indiqué -

Dans AWS Lambda, le code imprimera le message SNS comme indiqué dans l'exemple ci-dessous -

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log(event.Records[0].Sns.Message);
   callback(null, event.Records[0].Sns.Message);};

Invoquons la même chose à l'aide de l'AWS CLI. Sauvegardons l'événement dans un fichier et utilisons-le pour la charge utile en utilisant la commande indiquée -

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt