Surveillance et dépannage à l'aide de Cloudwatch

Les fonctions créées dans AWS Lambda sont surveillées par Amazon CloudWatch. Il aide à consigner toutes les demandes adressées à la fonction Lambda lorsqu'elle est déclenchée.

Considérez que le code suivant est téléchargé dans AWS Lambda avec le nom de la fonction comme lambda and cloudwatch.

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Lambda monitoring using amazon cloudwatch");    
   callback(null, 'Hello from Lambda');
};

Lorsque la fonction est testée ou déclenchée, vous devriez voir une entrée dans Cloudwatch. Pour cela, accédez aux services AWS et cliquez sur CloudWatch.

Sélectionnez les journaux du côté gauche.

Lorsque vous cliquez Logs, il a la Log Groupsde la fonction AWS Lambda créée dans votre compte. Sélectionnez une fonction Lambda AWS et vérifiez les détails. Ici, nous faisons référence à la fonction Lambda avec le nom:lambdaandcloudwatch. Les journaux ajoutés à la fonction Lambda sont affichés ici comme indiqué ci-dessous -

Maintenant, ajoutons un déclencheur S3 à la fonction Lambda et voyons les détails des journaux dans CloudWatch comme indiqué ci-dessous -

Mettons à jour le code AWS Lambda pour afficher le fichier téléchargé et le nom du compartiment comme indiqué dans le code ci-dessous -

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Lambda monitoring using amazon cloudwatch");
   const bucket = event.Records[0].s3.bucket.name;
   const filename = event.Records[0].s3.object.key;
   const message = `File is uploaded in - ${bucket} -> ${filename}`;
   console.log(message);
   callback(null, 'Hello from Lambda');
};

Maintenant, ajoutez un fichier dans s3storetestlambdaEventbucket comme indiqué -

Lorsque le fichier est téléchargé, les fonctions AWS Lambda seront déclenchées et les messages du journal de la console à partir du code Lambda sont affichés dans CloudWatch comme indiqué ci-dessous -

S'il y a une erreur, CloudWatch donne les détails de l'erreur comme indiqué ci-dessous -

Notez que nous avons mal fait référence au nom du compartiment dans le code AWS Lambda, comme indiqué

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Lambda monitoring using amazon cloudwatch");
   const bucket = event.Records[0].bucket.name;
   const filename = event.Records[0].s3.object.key;
   const message = `File is uploaded in - ${bucket} -> ${filename}`;
   console.log(message);
   callback(null, 'Hello from Lambda');
};

La référence au nom du compartiment de l'événement est incorrecte. Ainsi, nous devrions voir une erreur affichée dans CloudWatch comme indiqué ci-dessous -

Métriques CloudWatch

Les détails de l'exécution de la fonction Lambda peuvent être consultés dans les métriques. Cliquez surMetrics affiché sur le côté gauche.

Les détails du graphique pour la fonction lambda lambdaandcloudwatch sont comme indiqué ci-dessous -

Il donne des détails tels que la durée pendant laquelle la fonction Lambda est exécutée, le nombre de fois qu'elle est appelée et les erreurs de la fonction Lambda.