boto3 get_resources 分页器在控制台中不起作用

boto3 get_resources paginator doesn't work with within console

我正在尝试使用来自 resourcesgrouptaggingAPI 的 get_resources 并对其进行分页。我正在使用 lambda 函数和 boto3 执行此操作。

然而,使用 base = client.can_paginate('get_resources') returns False 虽然在 documentation 中表明它适用于 get_resources

另一个人遇到了这个问题并创建了一个问题 here. 现在它似乎对他有用,所以我正在尝试调查导致控制台 lambda 环境无法工作的原因。

为清楚起见,这里是我的声明和初始化:

client = boto3.client('resourcegroupstaggingapi')
base = client.can_paginate('get_resources') #returns False
paginator = client.get_paginator('get_resources')

因此,使用控制台进行分页是否存在问题?

AWS lambda 环境并不总是运行 boto3/botocore 的最新版本。它目前提供 botocore 版本 1.5.52(来源:https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html ). The paginator you're trying to access was released in 1.5.53 (source: https://github.com/boto/botocore/commit/144dda7b63f9eccaeae66c040a281208b43e2678

因此,您正在尝试使用尚不支持 get_resources 分页的 botocore 版本。在这种情况下,您需要通过在捆绑前安装来捆绑支持该功能的 boto3/botocore 版本与您的 lambda。

例如如果您的源代码位于目录 src:

pip install boto3==1.4.4 cp -r /usr/local/lib/python2.7/site-packages/* src/ cd src zip -rq lambda.zip .