CloudWatch Logs Insights Parse语法

问题描述 投票:2回答:1

我有一个Lambda,它查询ec2 api并将输出打印到cloudwatch日志,我想将其用于指标。但是,我在解析输出时遇到问题(从字典生成)。这是一个典型的@message:

defaultdict(None, {ec2.Instance(id='i-instance'): {'InstanceID': 'i-instance', 'Type': 't2.micro', 'ImageID': 'ami-0e5493310d2c6de5b', 'State': 'running'

我试图|parse 'InstanceID': *' as InstanceId和类似但这个错误,我没有在文档中找到示例(https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)。

援助表示感谢

amazon-web-services amazon-cloudwatchlogs aws-cloudwatch
1个回答
1
投票

如果您可以修改Lambda,可能最简单的解决方案是将字典打印为单行JSON(而不是Python字典的字符串格式) - 像print(json.dumps(myvalue))这样的应该可以解决问题。然后,Cloudwatch会自动了解这些字段。

如果您无法修改Lambda的输出,则向Logs Insights查询添加更多引号可能会有所帮助:parse @message "'InstanceID': '*'" as InstanceID

© www.soinside.com 2019 - 2024. All rights reserved.