使用Cloudwatch进行监控和故障排除

AWS Lambda中创建的功能由Amazon CloudWatch监控.它有助于记录触发时对Lambda函数发出的所有请求.

考虑以下代码在AWS Lambda中上传,函数名称为 lambda和cloudwatch .

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

当测试或触发该功能时,您应该在Cloudwatch中看到一个条目.为此,请转到AWS服务并单击CloudWatch.

Click Cloudwatch

从左侧选择日志.

选择左侧

单击日志,它会在您的帐户中创建AWS Lambda函数的日志组.选择anyAWS Lambda函数并检查详细信息.这里,我们指的是Lambda函数,名称为: lambdaandcloudwatch .添加到Lambda函数的日志显示在此处,如下所示 :

Log Groups

现在,让我们在Lambda函数中添加S3触发器,并在CloudWatch中查看日志详细信息,如下所示 :

S3触发

让我们更新AWS Lambda代码以显示上传的文件和存储桶名称,如下面给出的代码所示 :

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');
};

现在,在 s3storetestlambdaEventbucket 中添加文件,如下所示 :

S3 Store Test

上传文件后,AWS Lambda函数将被触发,来自Lambda代码的控制台日志消息将显示在CloudWatch中如下所示 :

Cloudwatch Display

如果有任何错误,CloudWatch提供错误详细信息,如下所示 :

Cloudwatch Details

请注意,我们在AWS Lambda代码中错误地引用了存储桶名称,如下所示 :

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');
};

事件的存储桶名称引用错误.因此,我们应该看到CloudWatch中显示的错误如下所示 :

错误显示

CloudWatch指标

可以在指标中看到Lambda函数执行的详细信息.点击左侧显示的指标.

指标显示


所有指标

图表的详细信息lambda函数 lambdaandcloudwatch 如下所示 :

Graphed Metrics


图表详细信息 图形详细信息Lambda

它提供了一些详细信息,例如Lambda函数执行的持续时间,调用次数和错误来自Lambda函数.