Construire la fonction Lambda

La fonction AWS Lambda exécute un code lorsqu'elle est appelée. Ce chapitre décrit en détail toutes ces étapes impliquées dans le cycle de vie de la fonction AWS Lambda.

Étapes de création d'une fonction Lambda

Le cycle de vie de la fonction Lambda comprend quatre étapes nécessaires -

  • Authoring
  • Deploying
  • Monitoring
  • Troubleshooting

Création du code Lambda

Le code de fonction AWS Lambda peut être écrit dans les langues suivantes:

  • NodeJS
  • Java,
  • Python
  • C#
  • Go.

Nous pouvons écrire du code pour AWS Lambda à l'aide de la console AWS, de l'AWS CLI, de Eclipse IDE, de Visual Studio IDE, du framework sans serveur, etc.

Le tableau suivant présente une liste de langues et les différents outils et IDE qui peuvent être utilisés pour écrire la fonction Lambda -

Langue IDE pour la création de code Lambda
NodeJS

Console AWS Lambda

IDE de Visual Studio

Java IDE Eclipse
Python Console AWS Lambda
C #

IDE de Visual Studio

Noyau .NET

Aller Console AWS Lambda

Déployer du code Lambda

Une fois que vous avez choisi la langue dans laquelle vous souhaitez écrire la fonction Lambda, il existe deux façons de déployer le code:

  • Écrivez directement le code dans la console AWS
  • Zip ou jar les fichiers avec tous les fichiers et dépendances

Cependant, rappelez-vous qu'une autorisation appropriée doit être donnée pour le fichier zip.

Test du code Lambda

Le code Lambda peut être testé pour les événements dans la console AWS Lambda. Il est également possible de tester la fonction Lambda à partir du cli AWS et du cli sans serveur. La console AWS possède également des données d'événement qui peuvent être utilisées comme exemples d'événements lors du test de la fonction AWS Lambda.

Surveillance de la fonction Lambda

La surveillance de la fonction Lambda peut être effectuée à l'aide de AWS CloudWatch. Nous pouvons ajouter les messages de journal nécessaires dans les langues que nous choisissons et voir la même chose dans AWS CloudWatch.

Pour commencer à écrire la fonction Lambda, il y a un modèle à suivre. Voici les principaux concepts de base à suivre pour écrire une fonction Lambda -

Gestionnaire

Handler est un nom de la fonction AWS lambda à partir de laquelle l'exécution commence. Il apparaît dans la console AWS comme indiqué ci-dessous -

Notez qu'ici, nous avons changé le gestionnaire par défaut en un autre nom et mis à jour le même dans le gestionnaire -

Notez que la façon dont un gestionnaire est appelé diffère des langues sélectionnées comme runtime.

Paramètres passés au gestionnaire

Si vous observez la fonction du gestionnaire, les paramètres passés sont event, context et call back function comme indiqué ci-dessous -

Event Le paramètre contient tous les détails du déclencheur utilisé.

ContextLe paramètre prend essentiellement en charge les détails d'exécution pour la fonction Lambda à exécuter. Nous pouvons interagir avec la fonction Lambda en utilisant lecontextparam. Il contient des détails tels que le temps restant avant qu'AWS Lambda ne termine une fonction, c'est-à-dire le délai spécifié lors de la création de la fonction Lambda, le nom de la fonction Lambda, le nom du groupe cloudwatch, les détails de l'arn, etc.

Exemple

Comprenons les détails obtenus à partir de l'objet de contexte AWS Lambda à l'aide d'un exemple -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   console.log("context object details");
   console.log(JSON.stringify(context));
   callback(null, 'Lambda test');
};

Lorsque vous exécutez la fonction Lambda illustrée ci-dessus, vous pouvez voir la sortie suivante -

Production

le context les détails sont donnés comme suit -

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

Observez qu'il contient des détails tels que functionName, memorylimit, requestId, etc.

Enregistrement

Les journaux ajoutés dans la fonction Lambda sont affichés dans AWS CloudWatch lorsque la fonction AWS s'exécute. La syntaxe des journaux variera de la langue sélectionnée. Par exemple dansnodejs, c'est console.log.

C'est la sortie que vous pouvez voir dans AWSCloudWatch -

La gestion des erreurs

La fonction AWS Lambda fournit une fonction de rappel qui est utilisée pour notifier à la fonction Lambda qu'une erreur ou un succès s'est produit. Notez qu'ici nous avons utilisé nodejs comme runtime. La gestion des erreurs sera différente selon la langue sélectionnée.

Observez l'exemple donné ici pour une meilleure compréhension -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   var error = new Error("There is error in code");
   callback(error);
};

Production

Lorsque vous testez le code Lambda, vous pouvez trouver la sortie comme indiqué ci-dessous -

Les détails du journal comme suit -