所以我是python和AWS / Lambda的新手,但遇到了一些麻烦。我想使用boto3读取cloudwatch日志,但是它不起作用。在AWS中运行以下代码时,出现以下错误:
An error occurred during JSON serialization of response: AttributeError("'CloudWatchLogs' object has no attribute 'start_query'",) is not JSON serializable
import boto3
import time
boto_client = boto3.client('logs')
def start_query(query):
current_time = time.time()
response = boto_client.start_query(
logGroupName='app-start-logging',
startTime=current_time,
endTime=current_time - 86400,
queryString=query
)
return response
上的文档
答案 0 :(得分:0)
CloudWatch Logs Insights 似乎是在2018年11月27日(Document History - Amazon CloudWatch Logs)引入的。
AWS Lambda当前支持的boto3
版本是1.9.42
(AWS Lambda Runtimes - AWS Lambda)。
Boto3 v1.9.42已于2018年11月10日(boto3 · PyPI)发布。
因此,AWS Lambda中提供的boto3版本(在我撰写本文时)不支持CloudWatch Logs Insight 。
您可以升级AWS Lambda函数中使用的boto3版本。参见:Lambda Functions with Newer Version of boto3 than Available by Default – M&S Consulting – AWS, Salesforce, Oracle, Hadoop