如何过滤 Lambda 的 AWS 日志以仅查看 console.logs
How to filter AWS logs for Lambda to see just console.logs
我目前正在使用 aws logs filter-log-events --log-group-name /aws/lambda/lambda-name --region us-east-1
从 lambda 获取日志,但返回的日志相当......广泛。
例如:
{
"ingestionTime": *,
"timestamp": *,
"message": "START RequestId: * Version: $LATEST\n",
"eventId": "*",
"logStreamName": "2018/10/26/[$LATEST]*"
}...
我可以仅使用适合 npm 脚本的 bash 命令来获取消息吗?也许用 grep 或 find。
获取filter-log-events command you can use jq返回的日志中的特定属性。这是我在 windows powershell 中做的一个例子。
aws logs filter-log-events --log-group-name <yourLogGroup> --region <yourRegion> | jq '.events[].message'
还有一个--filter-pattern
参数,其中有一些例子here
如果命令需要获取最近几天的信息,可以使用 filter-log-events 命令的 --start-time
和 --end-time
参数。
要实时订阅 CloudWatch 日志,项目可以使用 put-subscription-filter 命令将日志写入另一个 Lambda 函数进行处理。这是 nodejs 中的示例函数:
var zlib = require('zlib');
exports.handler = function(input, context) {
var payload = new Buffer(input.awslogs.data, 'base64');
zlib.gunzip(payload, function(e, result) {
if (e) {
context.fail(e);
} else {
result = JSON.parse(result.toString('ascii'));
console.log("Event Data:", JSON.stringify(result, null, 2));
context.succeed();
}
});
};
我目前正在使用 aws logs filter-log-events --log-group-name /aws/lambda/lambda-name --region us-east-1
从 lambda 获取日志,但返回的日志相当......广泛。
例如:
{
"ingestionTime": *,
"timestamp": *,
"message": "START RequestId: * Version: $LATEST\n",
"eventId": "*",
"logStreamName": "2018/10/26/[$LATEST]*"
}...
我可以仅使用适合 npm 脚本的 bash 命令来获取消息吗?也许用 grep 或 find。
获取filter-log-events command you can use jq返回的日志中的特定属性。这是我在 windows powershell 中做的一个例子。
aws logs filter-log-events --log-group-name <yourLogGroup> --region <yourRegion> | jq '.events[].message'
还有一个--filter-pattern
参数,其中有一些例子here
如果命令需要获取最近几天的信息,可以使用 filter-log-events 命令的 --start-time
和 --end-time
参数。
要实时订阅 CloudWatch 日志,项目可以使用 put-subscription-filter 命令将日志写入另一个 Lambda 函数进行处理。这是 nodejs 中的示例函数:
var zlib = require('zlib');
exports.handler = function(input, context) {
var payload = new Buffer(input.awslogs.data, 'base64');
zlib.gunzip(payload, function(e, result) {
if (e) {
context.fail(e);
} else {
result = JSON.parse(result.toString('ascii'));
console.log("Event Data:", JSON.stringify(result, null, 2));
context.succeed();
}
});
};