我正在使用boto库访问来自AWS EC2的get_spot_price_history函数的信息。我注意到它将结果限制为1000 - 即使我没有设置max_results。有没有办法获得超过1000个结果?即使我将max_results设置为2000,我仍然只能获得1000个结果。
我没有在boto代码中看到任何将结果限制为1000的内容,这令人费解。这是我正在使用的示例脚本,用于说明问题:
#!/usr/bin/python
import boto
import boto.ec2
ec2 = boto.ec2.connect_to_region("us-west-1", aws_access_key_id="KEY", aws_secret_access_key="SECRET")
start = '2013-11-17T00:14:45.000Z'
end = '2013-12-17T00:14:45.000Z'
output = ec2.get_spot_price_history(start_time=start, end_time=end, availability_zone="us-west-1a")
print "Length: %d" % (len(output))
答案 0 :(得分:2)
这似乎是由于底层AWS EC2 API的行为:http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html
MaxResults
The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.
Type: Integer
Default: The call returns all items.
Constraint: If the value is greater than 1000, we return only 1000 items.
Required: No
亚马逊似乎返回了一个可以在后续请求中使用的令牌,但我还没有看到boto
公开该令牌。我也在尝试获取超过1000个实例的信息。
编辑:看起来已经修复了已修复的错误:https://github.com/boto/boto/issues/1957
正在返回的列表应该是ResultSet,它将为您提供nextToken
。