我最近开始在Sinatra Web应用程序中使用aws
gem,其目的是为实例管理提供定制的前端(集成非AWS工具)。我目前正在处理表单,允许用户设置可能需要设置的所有选项,其中一个选项是实例类型(m1.small,c1.medium等)。
我想要的是能够联系某些来源以提取可用类型列表。我查看了AWS :: EC2文档,但未找到符合此描述的任何内容。我没有必要坚持要求解决方案成为aws
宝石的一部分,但如果是,那就更好了,因为这是我已经使用的工具。
您是否知道以编程方式收集此信息的方法?
答案 0 :(得分:6)
据我所知,这是不可能的。如果可能的话,亚马逊会在their documentation中列出api电话。
我发现遗漏有点奇怪,因为我已经准备好列出其他任何东西了。
你可以通过DescribeReservedInstancesOfferings
调用来解决它,它会列出你可以购买的所有类型的预留实例 - 我会认为从中提取唯一的实例类型是合理的近似值(目前为止)据我所知,没有实例类型,你不能得到保留实例)。看起来不像aws
gem支持它。 official amazon sdk和fog
答案 1 :(得分:2)
在亚马逊尚未发布枚举实例类型的API的情况下,这是一个有点愚蠢的解决方法:
instance_types = Set.new()
response = {:next_token => ''}
loop do
response = ec2.client.describe_spot_price_history(
:start_time => (Time.now() - 86400).iso8601,
:end_time => Time.now().iso8601,
:product_descriptions => ['Linux/UNIX'],
:availability_zone => 'us-east-1c',
:next_token => response[:next_token]
)
response[:spot_price_history_set].each do |history_set|
instance_types.add(history_set[:instance_type])
end
if(response[:next_token].nil?)
break
end
end