Я використовую бібліотеку boto для доступу до інформаціївід функції get_spot_price_history від AWS EC2. Я помітив, що це обмежує результати до 1000 - навіть якщо я не встановлюю max_resulta. Чи є спосіб отримати більше 1000 результатів? Навіть якщо я встановив max_results до 2000, я все одно отримую 1000 результатів.
Я не бачу нічого в ботовому коді, що обмежує результати до 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))
Відповіді:
2 для відповіді № 1Схоже, це пов'язано з поведінкою базового API AWS EC2: 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
Здається, Amazon повертає маркер, який ви можете використовувати в наступних запитах, але я цього не бачив boto
ще викриває цей маркер. Я також намагаюся отримати інформацію про понад 1000 примірників.
Редагувати: Схоже, помилка подана, яку вже виправлено: https://github.com/boto/boto/issues/1957
Список, який повертається, повинен бути ResultSet, який буде мати nextToken
для вас