![](/img/trans.png)
[英]How to get the latest cloudwatch log stream URL using Python Lambda?
[英]Parsing cloudwatch log event message data using lambda and python
所以......我有使用 python boto3 為我提取 cloudwatch 日志流的 lambda。
responseRDS = client.get_log_events(
logGroupName='<target log group>',
logStreamName='<target stream>',
limit=10,
startFromHead=False
)
我返回的結果是 JSON,但是,我要解析的數據在消息鍵中......這並不漂亮。 下面是一個例子:
"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
我真正想要的是 Query_time 和 Rows_examined 數據。 我可以想到一些骯臟的方法來做到這一點,比如使用空格作為分隔符來解析有效負載……但如果我沒有的話,這並不是我真正想做的事情。 我希望有一種類似於 Insights 過濾器的方法,我可以在其中使用:
@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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.