使用 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。

点击云观察

从左侧选择日志。

选择左侧

当您单击日志时,它会在您的账户中创建 AWS Lambda 函数的日志组。选择任意 AWS Lambda 函数并检查详细信息。在这里,我们指的是名为lambdaandcloudwatch的 Lambda 函数。添加到 Lambda 函数的日志显示在此处,如下所示 -

日志组

现在,让我们将 S3 触发器添加到 Lambda 函数并在 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存储测试

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

云表显示

如果出现任何错误,CloudWatch 会给出错误详细信息,如下所示 -

云观察详情

请注意,我们在 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的图形详细信息如下所示 -

图表化指标

图表详情 图详细信息 Lambda

它提供了 Lambda 函数执行的持续时间、调用次数以及 Lambda 函数的错误等详细信息。