boto3客户端无法正确序列化

时间:2019-05-07 10:46:31

标签: python-3.x amazon-web-services aws-lambda boto3

所以我是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

我已遵循https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/logs.html#CloudWatchLogs.Client.start_query

上的文档

1 个答案:

答案 0 :(得分:0)

CloudWatch Logs Insights 似乎是在2018年11月27日(Document History - Amazon CloudWatch Logs)引入的。

AWS Lambda当前支持的boto3版本是1.9.42AWS 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