无法使用boto3 pagin遍历cloudwatch上的所有警报

2024-04-26 07:29:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试列出AWS Cloudwatch中的所有警报。目前我有大约200个。然而,当我尝试列出它们时,我得到的最大值是100。我尝试分页,但无法转到下一页或使用下一个标记。你知道吗

下面是代码片段

response = client.describe_alarms(StateValue='OK', MaxRecords = 100)
paginator = client.get_paginator('describe_alarms')
response_iterator = paginator.paginate(StateValue='OK',
                                        PaginationConfig={
                                        'MaxItems': 100,
                                        'PageSize': 100,

    })
for x in response_iterator:
    print(x)

我只收到100张唱片。当我把最大值改为200或实际值时,它会给出错误,说100是最大值。如何得到全部200。你知道吗


Tags: 代码标记clientawsgetresponseok警报
1条回答
网友
1楼 · 发布于 2024-04-26 07:29:53

调用paginator.paginate()方法时,传递的是'MaxItems': 100。这将限制分页器返回的项目总数为100,而不管有多少total项目。如果你摆脱了这个论点,你会得到一个分页器,它将分页你所有的警报。你知道吗

您可以运行此代码片段来打印分页器中每页返回的报警数:

response_iterator = paginator.paginate(StateValue='OK')
for i in response_iterator:
    print(len(i['MetricAlarms']),"alarms found")

相关问题 更多 >