boto3 get_resources paginator无法在控制台

时间:2017-07-17 21:17:35

标签: amazon-web-services aws-lambda boto3 tagging

我尝试使用resourcesgrouptaggingAPI中的get_resources并对其进行分页。我是用lambda函数和boto3做的。

然而,使用base = client.can_paginate('get_resources')会返回False,但在documentation内,它表明它适用于get_resources

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

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

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

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

1 个答案:

答案 0 :(得分:1)

AWS lambda环境并不总是运行最新版本的boto3 / botocore。它目前提供botocore版本1.5.52(来源:https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html)。您尝试访问的分页器已在1.5.53(来源:https://github.com/boto/botocore/commit/144dda7b63f9eccaeae66c040a281208b43e2678

中发布

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

E.g。如果你的源代码在src:

目录中

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