Création et déploiement à l'aide d'AWS Console

Nous pouvons créer une fonction Lambda et la tester dans la console AWS. Ce chapitre traite de cela en détail. Pour cela, vous devrez suivre les étapes indiquées ici et observer les captures d'écran respectives données -

Étape 1

Connectez-vous à AWS Console https://aws.amazon.com/console/. Maintenant, vous serez redirigé vers l'écran où les services AWS sont affichés.

Étape 2

Maintenant, cliquez sur Lambdaservice comme indiqué ci-dessus. Cela redirigera pour créer la fonction comme indiqué ci-dessous -

Étape 3

Maintenant, cliquez sur Create functionet entrez les détails de la fonction. Ensuite, vous pouvez voir un écran comme indiqué ci-dessous -

Étape 4

Vous pouvez écrire votre code en choisissant la langue de votre choix. Le code doit être écrit dans l'éditeur si l'option sélectionnée est modifier le code en ligne. Les autres options disponibles sont les suivantes -

Étape 5

Une fois terminé, vous devez enregistrer les modifications pour lesquelles le bouton est indiqué dans le coin supérieur droit, comme indiqué ci-dessous -

Étape 6

Maintenant, cliquez sur Testbouton. Cela donne tous les détails de l'exécution de la fonction Lambda comme indiqué ci-dessous -

Étape 7

Le code pour index.js est comme suit -

exports.handler = (event, context, callback) => {
   // TODO implement
   callback(null, 'Lambda test');
};

Cela appellera le Callback functionet le résultat peut être une erreur ou un succès. En cas de succès, vous verrez unLambda testmessage; en cas d'erreur, il passera null.

Étape 8

le Role les détails de la fonction Lambda font partie de la configuration et sont affichés comme indiqué ci-dessous -

Étape 9

Maintenant, vous pouvez mettre à jour le rôle si nécessaire et enregistrer la fonction Lambda. Ensuite, les détails de la mémoire et du délai d'expiration pour la fonction lambda sont affichés comme indiqué ci-dessous -

Étape 10

Maintenant, nous devons ajouter un déclencheur à la fonction Lambda afin qu'elle s'exécute lorsque l'événement se produit. Les détails du déclencheur sont affichés au début de l'écran de la fonction AWS Lambda, comme indiqué ci-dessous -

À partir de là, vous pouvez sélectionner le déclencheur que vous souhaitez que votre fonction Lambda déclenche. Lorsque vous sélectionnez le déclencheur, les détails de configuration du déclencheur doivent être ajoutés.

Par exemple, pour le déclencheur sur S3, les détails de configuration à ajouter sont les suivants -

Étape 11

Maintenant, sélectionnez le compartiment sur lequel vous souhaitez activer le déclencheur. Le type d'événement a les détails suivants -

Étape 12

Pour le déclencheur, vous pouvez également mentionner les fichiers de type préfixe ou le modèle de fichier, le Lambda doit être déclencheur. Les détails sont comme indiqué -

Étape 13

Maintenant, remplissez les détails requis pour le déclencheur et cliquez sur Add bouton .Enregistrer la fonction Lambda pour que le déclencheur soit ajouté. L'enregistrement de la fonction déploie les détails, et à partir de maintenant, chaque fois que des fichiers sont ajoutés au compartiment S3, le Lambda sera déclenché.

Observez la capture d'écran suivante qui montre le déclencheur S3 ajouté à AWS Lambda -

Étape 14

Maintenant, utilisons l'exemple d'événement S3 pour tester la fonction Lambda. Le code pour le même est montré ici -

Exemple d'événement de vente Amazon S3

{
   "Records": [{
      "eventVersion": "2.0",
      "eventTime": "1970-01-01T00:00:00.000Z",
      "requestParameters": {
         "ExampleIPAddress": "127.0.0.1"
      },
      "s3": {
         "configurationId": "testConfigRule",
         "object": {
            "eTag": "0123456789abcdef0123456789abcdef",
            "sequencer": "0A1B2C3D4E5F678901",
            "key": "HappyFace.jpg",
            "size": 1024
         },
         "bucket": { 
            "arn": bucketarn,
            "name": "Examplebucket",
            "ownerIdentity": {
               "principalId": "Example"
            }
         },
         "s3SchemaVersion": "1.0"
      },
      "responseElements": { 
         "x-amz-id-2": "Example123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
         "x-amz-request-id": "Example123456789"
      },
      "awsRegion": "us-east-1",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
         "principalId": "Example"
      },
      "eventSource": "aws:s3"
   }]
}

Vous devrez utiliser la commande suivante pour obtenir les détails du fichier téléchargé à partir de l'événement S3 put -

event.Records[0].s3.object.key     //will display the name of the file

Vous devrez utiliser la commande suivante pour obtenir le nom du bucket -

event.Records[0].s3.bucket.name    //will give the name of the bucket.

Vous devrez utiliser la commande suivante pour obtenir le EventName -

event.Records[0].eventName        // will display the event name

Étape 15

Maintenant, mettons à jour le code AWS Lambda pour imprimer les détails S3 comme indiqué ci-dessous -

exports.lambdahandler = (event, context, callback) => {
   callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+"  
   File name:"+event.Records[0].s3.object.key );
};

Étape 16

Enregistrez les modifications. Cliquez surTest et entrez l'événement d'exemple S3 -

Étape 17

Cliquez maintenant Test et vous pouvez voir la sortie comme indiqué -

Étape 18

Pour tester le déclencheur sur S3 à l'aide du service S3 AWS, téléchargez un fichier dans le compartiment S3: test bucket trigger. Mettez à jour le rôle utilisé avec Lambda pour prendre la stratégie S3 et SES (pour envoyer du courrier) pour les autorisations. Cela mettra à jour le code AWS Lambda pour envoyer des e-mails pour voir le déclencheur fonctionner -

Le code AWS Lambda mis à jour est comme indiqué -

var aws = require('aws-sdk');
var ses = new aws.SES({
   region: 'us-east-1'
});
exports.lambdahandler = function(event, context, callback) {
   var eParams = {
      Destination: {
         ToAddresses: ["[email protected]"]
      },
      Message: {
         Body: {
            Text: {
               Data: "Bucket name: "+event.Records[0].s3.bucket.name+"  File name:"+event.Records[0].s3.object.key
            }
         },
         Subject: {
            Data: "S3 and AWS Lambda"
         }
      },
      Example: "[email protected]"
   };
   console.log('===SENDING EMAIL===');
   var email = ses.sendEmail(eParams, function(err, data) {
      if (err) console.log(err);
         else {
            console.log("===EMAIL SENT===");
            console.log("EMAIL CODE END");
            console.log('EMAIL: ', email);
            context.succeed(event);
            callback(null, "email is send");
         }
   });
};

La capture d'écran correspondante est comme montré ici -

Étape 19

Maintenant, téléchargez le fichier et vérifiez l'ID de messagerie fourni dans le code AWS Lambda -