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 函数的
日志组。选择 anyAWS Lambda 函数并检查详细信息。在这里,我们指的是名称为:
lambdaandcloudwatch 的 Lambda 函数。添加到 Lambda 函数的日志显示在此处,如下所示-
现在,让我们将 S3 触发器添加到 Lambda 函数并查看 CloudWatch 中的日志详细信息,如下所示-
让我们更新 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 中添加文件,如图所示-
上传文件后,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 函数的错误。