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

标签 python amazon-web-services aws-lambda boto3 amazon-cloudwatch

我正在尝试使用 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/

相关文章:

python - 在转换时将元组扩展为参数?

python - 使用 modelform 的 Django 身份验证

javascript - 如何获取简单 Dropbox 应用的访问 token ?

amazon-web-services - 使用 CloudFormation Mapping 作为自定义资源 lambda 的环境变量

javascript - 如何从此 AWS SecretsManager JSON 对象中提取字段?

python - 如何在Django中引用不同应用程序中的不同模板?

python - 如何动态更改 'Text Markup'中的字体大小?

amazon-web-services - 无法从 VPC 内访问托管在 S3 存储桶上的静态网站

python - Amazon SageMaker 中的 Tensorflow 服务

amazon-web-services - 将具有 Glacier 存储类的 S3 文件移动到不同的文件夹