gpt4 book ai didi

json - 如何使用 JSON 指标筛选器从 Lambda 筛选 CloudWatch 日志

转载 作者:行者123 更新时间:2023-12-04 02:01:33 27 4
gpt4 key购买 nike

直接使用来自 documentation 的示例, 在我输入的 lambda 函数中:

console.log(
{
"eventType": "UpdateTrail",
"sourceIPAddress": "111.111.111.111",
"arrayKey": [
"value",
"another value"
],
"objectList": [
{
"name": "a",
"id": 1
},
{
"name": "b",
"id": 2
}
],
"SomeObject": null,
"ThisFlag": true
})

然后,我使用文档示例中指定的过滤器模式在 CloudWatch 中创建一个日志指标过滤器:
{ $.eventType = "UpdateTrail" }

过滤器不会像文档所说的那样生成一个指标 - 这是输出:
2017-10-23T13:27:19.320Z    1143e2b0-eea6-4225-88c0-efcd79055f7b    { eventType: 'UpdateTrail',
sourceIPAddress: '111.111.111.111',
arrayKey: [ 'value', 'another value' ],
objectList: [ { name: 'a', id: 1 }, { name: 'b', id: 2 } ],
SomeObject: null,
ThisFlag: true }

如您所见,时间戳和标识符被添加到 JSON 中。

答案在 Amazon Cloudwatch log filtering - JSON syntax说这是因为 Lambda 将日志转换为字符串。 How to parse mixed text and JSON log entries in AWS CloudWatch for Log Metric Filter说的差不多。在这两种情况下都没有提供解决方案。如何使用 JSON 指标过滤器从 Lambda 过滤 CloudWatch 日志?

最佳答案

看看日志行实际上是什么样子的。如果您看到类似这样的内容,则它不是有效的 json:

{ eventType: 'UpdateTrail', ... }

你想要的是这样的(注意引用):
{ "eventType": "UpdateTrail", ...}

要做到这一点,请尝试将您的对象包装在 JSON.stringify() 中, 像这样:
console.log(
JSON.stringify(
{
"eventType": "UpdateTrail",
"sourceIPAddress": "111.111.111.111",
"arrayKey": [
"value",
"another value"
],
"objectList": [
{
"name": "a",
"id": 1
},
{
"name": "b",
"id": 2
}
],
"SomeObject": null,
"ThisFlag": true
}
)
)

关于json - 如何使用 JSON 指标筛选器从 Lambda 筛选 CloudWatch 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46867591/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com