gpt4 book ai didi

python - 尝试从 CloudWatch 获取最新的 LogStream 时出现奇怪的行为

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

我正在尝试使用 python 中的 boto3 从 AWS CloudWatch 获取 LogGroup 的最新 LogStream。

这是我的代码 -

import boto3
import datetime
from datetime import datetime
session = boto3.session.Session(profile_name='saml')
client = session.client(service_name = 'logs' ,region_name='ap-southeast-2')
t1 = datetime.timestamp(datetime.utcnow())
response = client.filter_log_events(logGroupName='/aws/lambdagroup/name', limit = 1, startTime = int(t1))

我得到以下输出

{'events': [], 'searchedLogStreams': [{'logStreamName': '2019/04/28/[$LATEST]09e21ad3881e456b9cdc5cd48ff3d919', 'searchedCompletely': True}, {'logStreamName': '2019/04/28/[$LATEST]29919c675dd546eea103789f0b5943
79', 'searchedCompletely': True}, {'logStreamName': '2019/04/28/[$LATEST]679942908fba4d7287cc5ac288373568', 'searchedCompletely': True}, {'logStreamName': '2019/04/28/[$LATEST]68874fb83e8b47dfb0efc410b9314528',
'searchedCompletely': True}, {'logStreamName': '2019/04/28/[$LATEST]6c9e152d09574c49a37da86769e2a9b3........................ etc

问题 - 当我的开始时间指定为当前时间时,为什么我会收到 04/28 以后的日志?

我只想从特定的 LogGroup 获取最新的 LogStream。

最佳答案

也许您误解了LogStreamLogEvent

这是 filter_log_events 的 api :

response = client.filter_log_events(
logGroupName='string',
logStreamNames=[
'string',
],
logStreamNamePrefix='string',
startTime=123,
endTime=123,
filterPattern='string',
nextToken='string',
limit=123,
interleaved=True|False
)

如果您不指定logStreamNames,它将在所有LogStreams中搜索事件。

这就是为什么你得到 'events': []'searchedLogStreams': [{'logStreamName':...

要获取最新的LogStream,您可以使用describe_log_streams :

response = client.describe_log_streams(
logGroupName='/aws/group/name',
orderBy='LastEventTime',
descending=True,
limit=1
)

关于python - 尝试从 CloudWatch 获取最新的 LogStream 时出现奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58761049/

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