gpt4 book ai didi

python - 无法筛选 aws lambda 函数的 boto3 日志流

转载 作者:行者123 更新时间:2023-12-01 06:23:13 26 4
gpt4 key购买 nike

我无法使用 boto3 API 和 'endtime' 过滤器过滤出 lambda 函数的 logStreams'logStreamNamePrefix'过滤器。

这有效:

client = boto3.client('logs',
aws_access_key_id=aws_account['access_key'],
aws_secret_access_key=aws_account['secret_key'],
region_name=region)
logGroupName = '/aws/lambda/' + function_name
response = client.filter_log_events(
logGroupName=logGroupName,
startTime=int((datetime(2020, 1, 15)- datetime(1970, 1, 1)).total_seconds()), # epoch_time
)

但这些没有:

1.

response = client.filter_log_events(
logGroupName=logGroupName,
startTime=int((datetime(2020, 1, 15)- datetime(1970, 1, 1)).total_seconds()), # epoch_time
endTime=int((datetime(2020, 1, 31)- datetime(1970, 1, 1)).total_seconds())
)

ERROR: Empty list is returned, although log data is there for the specified time range

2.

response = client.filter_log_events(
logGroupName=logGroupName,
startTime=int((datetime(2020, 1, 15)- datetime(1970, 1, 1)).total_seconds()), # epoch_time
logStreamNamePrefix='^2020/01' # logs starting with this prefix
)

ERROR:

botocore.exceptions.ParamValidationError: Parameter validation failed:
Unknown parameter in input: "logStreamNamePrefix", must be one of: logGroupName, logStreamNames, startTime, endTime, filterPattern, nextToken, limit, interleaved

最佳答案

作为临时修复,我正在轮询所有响应,然后明确过滤它。

response = client.filter_log_events(
logGroupName=logGroupName,
startTime=int((datetime(2020, 1, 15)- datetime(1970, 1, 1)).total_seconds()), # epoch_time
)

filtered_response = list(filter(lambda x: x['logStreamName'].startswith('2020/01'), response['events']))

关于python - 无法筛选 aws lambda 函数的 boto3 日志流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60275792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com