红宝石AWS - 编程生成可用AWS实例类型的列表(Ruby AWS - Programmatic

2019-09-17 06:47发布

我已经使用了最近开始aws宝石在西纳特拉Web应用程序,其目的是提供一个定制的前端,以实例管理(整合非AWS工具)。 我目前工作的形式,以允许用户设置可能需要设置的所有选项,以及这些选项之一是实例类型(的m1.small,c1.medium等)。

我想是能够接触到一些源拉可用类型的列表。 我已经通过AWS EC2 ::看着文件,并没有发现任何匹配这个描述。 我有没有必要坚持一个解决方案是部分aws的宝石,但更重要的,如果它是,因为这是我已经使用的工具。

你知道的一种以编程方式获取这些信息?

Answer 1:

据我所知,这是不可能的。 如果有可能,亚马逊将列出在API调用自己的文档 。

我发现遗漏有点奇怪考虑the've了API列出几乎任何东西。

也许你可以杂牌它通过DescribeReservedInstancesOfferings调用,其中列出了所有种类的预留实例,你可以买-我本来以为提取唯一的实例类型的,这将是一个合理的近似(据我知道有没有实例类型你不能得到保留的情况下)。 看起来并不像aws宝石支持它虽然。 该官员亚马逊SDK不一样, 雾



Answer 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


文章来源: Ruby AWS - Programmatically generate list of available AWS instance types