Python Can';t获取现货价格历史的最大结果-美国东部地区

Python Can';t获取现货价格历史的最大结果-美国东部地区,python,amazon-ec2,boto,boto3,Python,Amazon Ec2,Boto,Boto3,当我检索“us-east-f1”或“us-east-1”中任何区域的现货历史价格时,结果总是小于200价格,我需要单个区域和单个实例类型。 如何检索大量结果? 例: 我的意思是,对于单个区域和实例类型,我需要最大结果大于此值 编辑: 我使用paginator获取所有可用页面的所有结果: paginator = ec2.get_paginator('describe_spot_price_history') page_iterator = paginator.paginate(StartTime

当我检索“us-east-f1”或“us-east-1”中任何区域的现货历史价格时,结果总是小于200价格,我需要单个区域和单个实例类型。 如何检索大量结果? 例:

我的意思是,对于单个区域和实例类型,我需要最大结果大于此值

编辑:

我使用paginator获取所有可用页面的所有结果:

paginator = ec2.get_paginator('describe_spot_price_history') 
page_iterator = paginator.paginate(StartTime= t, EndTime = f, MaxResults=2000 ) 
for page in page_iterator: 
   output = page['SpotPriceHistory'] 
然而,我还是得到了同样数量的结果!当我获取90天的结果时,我仍然得到相同数量的结果?
如何获取所有结果或获取最大价格值?

要对另一个区域进行API调用,请指定
区域名称

ec2 = boto3.client('ec2', region_name='ap-southeast-2')

当超过
MaxResults
时,通过进行相同的调用来获得下一组结果,但将
NextToken
设置为上一个结果集中
NextToken
返回的值。

要对另一个区域进行API调用,请指定
区域名称

ec2 = boto3.client('ec2', region_name='ap-southeast-2')

当超过
MaxResults
时,通过进行相同的调用来获得下一组结果,但将
NextToken
设置为上一个结果集中
NextToken
返回的值。

您的代码似乎工作正常,但开始和结束时间戳是向后的

我运行了以下代码:

import boto3
import datetime

start_date = datetime.datetime.now() - datetime.timedelta(90)
end_date = datetime.datetime.now() - datetime.timedelta(0)

ec2 = boto3.client('ec2', region_name='us-east-1')
paginator = ec2.get_paginator('describe_spot_price_history') 
page_iterator = paginator.paginate(InstanceTypes =['c3.4xlarge'],ProductDescriptions = ['Linux/UNIX'], AvailabilityZone = 'us-east-1a', StartTime= start_date, EndTime = end_date, MaxResults=2000 ) 

for page in page_iterator: 
   print page['SpotPriceHistory'] 
我找到了一个有122个条目的页面

第一个条目是2018-04-01:

{u'Timestamp': datetime.datetime(2018,
    4,
    1,
    4,
    40,
    44, tzinfo=tzutc()), u'AvailabilityZone': 'us-east-1a', u'InstanceType': 'c3.4xlarge', u'ProductDescription': 'Linux/UNIX', u'SpotPrice': '0.840000'
},
最后一个条目是2018-01-02:

{u'Timestamp': datetime.datetime(2018,
    1,
    2,
    0,
    28,
    35, tzinfo=tzutc()), u'AvailabilityZone': 'us-east-1a', u'InstanceType': 'c3.4xlarge', u'ProductDescription': 'Linux/UNIX', u'SpotPrice': '0.840000'
}

这涵盖了最多90天的可用数据。

您的代码似乎工作正常,但开始和结束时间戳是向后的

我运行了以下代码:

import boto3
import datetime

start_date = datetime.datetime.now() - datetime.timedelta(90)
end_date = datetime.datetime.now() - datetime.timedelta(0)

ec2 = boto3.client('ec2', region_name='us-east-1')
paginator = ec2.get_paginator('describe_spot_price_history') 
page_iterator = paginator.paginate(InstanceTypes =['c3.4xlarge'],ProductDescriptions = ['Linux/UNIX'], AvailabilityZone = 'us-east-1a', StartTime= start_date, EndTime = end_date, MaxResults=2000 ) 

for page in page_iterator: 
   print page['SpotPriceHistory'] 
我找到了一个有122个条目的页面

第一个条目是2018-04-01:

{u'Timestamp': datetime.datetime(2018,
    4,
    1,
    4,
    40,
    44, tzinfo=tzutc()), u'AvailabilityZone': 'us-east-1a', u'InstanceType': 'c3.4xlarge', u'ProductDescription': 'Linux/UNIX', u'SpotPrice': '0.840000'
},
最后一个条目是2018-01-02:

{u'Timestamp': datetime.datetime(2018,
    1,
    2,
    0,
    28,
    35, tzinfo=tzutc()), u'AvailabilityZone': 'us-east-1a', u'InstanceType': 'c3.4xlarge', u'ProductDescription': 'Linux/UNIX', u'SpotPrice': '0.840000'
}


这涵盖了可用数据的最长90天。

您如何知道存在更多结果?您的意思是它返回了历史记录?如何访问另一个区域,而我只有美国东部地区的权限。为了获得更多的结果,可能会发生特定AZ的价格几乎没有上涨。@mootmoot,如何访问另一个区域?您如何知道存在更多的结果?您的意思是它返回了什么历史?如何访问另一个区域,而我只有美国东部区域的权限。为了获得更多的结果,可能会发生特定AZ的价格几乎没有上涨。@mootmoot,如何访问另一个地区?如何访问前12个月?现货价格历史记录仅适用于前90天。为了获得更多结果,我使用以下命令:paginator=ec2.get_paginator('descripe_Spot_price_history'))page_iterator=paginator.paginate(StartTime=t,EndTime=f,MaxResults=2000)对于page_iterator:output=page['SpotPriceHistory']中的页面,将访问nextoken吗?或者我需要用另一种方式访问它?你可以用这种方式帮助我吗?你可以使用paginator,也可以再次调用普通方法,传递一个
NextToken
值。如何访问前12个月?现货价格历史记录仅适用于前90天。为了获得更多结果,我使用以下命令:paginator=ec2。get_paginator('Descripte_Spot_Price_history'))page_iterator=paginator.paginate(StartTime=t,EndTime=f,MaxResults=2000)对于page_iterator:output=page['SpotPriceHistory']中的页面,将访问nextoken吗?或者我需要用另一种方式访问它?你能帮我一下吗?你可以使用分页器,也可以再次调用普通方法,传递一个
NextToken
值。是的,我得到了类似的数字,我能得到更多吗?无法访问超过90天的时间:(?正确。说明开始时间可以达到过去90天。是的,我得到了类似的数字,我可以得到更多吗?无法访问超过90天的时间:(?正确。说明开始时间可以达到过去90天。