我有一个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)。
援助表示感谢
如果您可以修改Lambda,可能最简单的解决方案是将字典打印为单行JSON(而不是Python字典的字符串格式) - 像print(json.dumps(myvalue))
这样的应该可以解决问题。然后,Cloudwatch会自动了解这些字段。
如果您无法修改Lambda的输出,则向Logs Insights查询添加更多引号可能会有所帮助:parse @message "'InstanceID': '*'" as InstanceID
。