7

我最近开始aws在 Sinatra Web 应用程序中使用 gem,其目的是为实例管理提供自定义前端(集成非 AWS 工具)。我目前正在处理表单以允许用户设置可能需要设置的所有选项,其中一个选项是实例类型(m1.small、c1.medium 等)。

我想要的是能够联系到一些来源以获取可用类型的列表。我查看了 AWS::EC2 文档,没有找到任何符合此描述的内容。我没有必要坚持将解决方案作为awsgem 的一部分,但如果是,那就更好了,因为那是我已经在使用的工具。

你知道以编程方式收集这些信息的方法吗?

4

2 回答 2

6

据我所知,这是不可能的。如果可能的话,亚马逊会在他们的文档中列出 api 调用。

考虑到已经有 api 列出了几乎所有其他内容,我觉得这个遗漏有点奇怪。

您也许可以通过DescribeReservedInstancesOfferings调用将其组合起来,该调用列出了您可以购买的所有类型的保留实例 - 我原以为从中提取唯一实例类型将是一个合理的近似值(据我所知,没有实例类型您无法获得保留实例)。看起来aws宝石不支持它。亚马逊官方sdkfog一样

于 2012-05-17T10:33:48.567 回答
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
于 2014-04-25T20:29:25.373 回答