对于ec2.get_spot_price_history(),Boto将结果限制为1000?

时间:2013-12-27 04:03:26

标签: amazon-ec2 boto

我正在使用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))

1 个答案:

答案 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