Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用lambda和python解析cloudwatch日志事件消息数据_Python_Amazon Web Services_Aws Lambda_Amazon Cloudwatch - Fatal编程技术网

使用lambda和python解析cloudwatch日志事件消息数据

使用lambda和python解析cloudwatch日志事件消息数据,python,amazon-web-services,aws-lambda,amazon-cloudwatch,Python,Amazon Web Services,Aws Lambda,Amazon Cloudwatch,所以。。。我有一个lambda,它使用pythonbot3为我拉取cloudwatch日志流 responseRDS = client.get_log_events( logGroupName='<target log group>', logStreamName='<target stream>', limit=10, startFromHead=False ) 我真正想要的是查询时间和行数。我可以想出一些肮脏的方法,比如使用

所以。。。我有一个lambda,它使用pythonbot3为我拉取cloudwatch日志流

 responseRDS = client.get_log_events(
    logGroupName='<target log group>',
    logStreamName='<target stream>',
    limit=10,
    startFromHead=False
    )
我真正想要的是查询时间和行数。我可以想出一些肮脏的方法,比如使用空格作为分隔符解析有效负载。。。但如果我没有太多的时间,我也不想做什么。我希望有一种类似于Insights过滤器的方法,我可以使用:

@Query_time

有什么建议吗?

这可能是一个很好的用例:


这可能是一个很好的用例:


这看起来很有希望!我是python新手,所以在测试之前,我必须弄清楚如何将正则表达式库导入lambda层。。。但是当我执行你的代码时,我得到了“errorMessage”:“NoneType”对象没有属性“group”,“errorType”:“AttributeError”,“stackTrace”:[“File\”/var/task/lambda_function.py\”,第38行,在lambda_handler\n query\u time=m.group(1)#36.601863\n“]哦,这是我代码的问题,我将其更新为使用
re.search
而不是
re.match
,这应该会更好。我非常感谢您的帮助JD D,但我不想说,当我复制并粘贴此代码时,我得到的只是:“errorMessage”:无法封送响应:查看错误消息时,它似乎正在找到它。这看起来非常有希望!我是python新手,所以在测试之前,我必须弄清楚如何将正则表达式库导入lambda层。。。但是当我执行你的代码时,我得到了“errorMessage”:“NoneType”对象没有属性“group”,“errorType”:“AttributeError”,“stackTrace”:[“File\”/var/task/lambda_function.py\”,第38行,在lambda_handler\n query\u time=m.group(1)#36.601863\n“]哦,这是我代码的问题,我将其更新为使用
re.search
而不是
re.match
,这应该会更好。我非常感谢您的帮助JD D,但我不想说,当我复制并粘贴此代码时,我得到的只是:“errorMessage”:“无法封送响应:查看错误消息,它似乎正在查找它。”。
@Query_time
import re

resp = {"message": "# Time: 2020-03-10T05:49:25.597945Z\n# User@Host: domain_XX[domain_XX] @  [11.111.11.111]  Id: 47187\n# Query_time: 36.601863  Lock_time: 0.000237 Rows_sent: 0  Rows_examined: 32256"}

m = re.search(r"Query_time: ([\d.]+).*Rows_examined: (\d+)", resp["message"])
query_time = m.group(1) # 36.601863
rows_examined = m.group(2) # 32256