如何在不指定 MaxResults 的情况下使用 boto3 中的 cloudtrail lookup_events 获取开始时间和结束时间之间的所有事件?

How to get all the events between start and end times using cloudtrail's lookup_events in boto3 without specifying MaxResults?

我正在尝试使用 boto3.

为特定用户获取 AWS cloudtrail 事件

CloudTrail client

我正在使用 cloudtrail 客户端和 lookup_events() 函数。 我可以指定 StartTimeEndTime 之间我需要得到的结果。

但我可能在 StartTimeEndTime 之间有一些事件。如果我不为 lookup_events() 提供 MaxResults 过滤器,它默认返回 50 个事件。

response = client.lookup_events(
    LookupAttributes=[
        {
            'AttributeKey':'Username',
            'AttributeValue': 'user1'
        },
    ],
    StartTime=datetime(2019, 12, 31),
    EndTime=datetime(2020, 1, 1),
    MaxResults=123
)

如果我需要得到 MaxResults,我需要实际提到 MaxResults 这不是我想要的。

我想获取 StartTimeEndTime 之间的所有事件。

有什么方法可以跳过 MaxResults 参数并且 lookup_events() 函数获取 StartTimeEndTime 之间的所有事件,无论那里有多少事件在这段时间内发送响应需要多长时间?

如果我指定 MaxResults 多于 1000,我会收到一条错误消息,指出它应该在 11000 范围内下注=。

不,您不能在单个 API 调用中获得超过允许的最大结果。你必须使用分页。

boto3 SDK为您提供了分页功能,但是,请参阅LookupEvents paginator