Ruby AWS – 以编程方式生成可用AWS实例类型的列表
我最近开始在Sinatra Web应用程序中使用aws
gem,其目的是为实例管理提供定制的前端(集成非AWS工具)。 我目前正在处理表单,允许用户设置可能需要设置的所有选项,其中一个选项是实例类型(m1.small,c1.medium等)。
我想要的是能够联系某些来源以获取可用类型列表。 我查看了AWS :: EC2文档,但未找到符合此描述的任何内容。 我没有必要坚持认为解决方案是aws
gem的一部分,但如果是,那就更好了,因为那是我已经使用的工具。
您是否知道以编程方式收集此信息的方法?
据我所知,这是不可能的。 如果可能的话,亚马逊会在他们的文档中列出api调用。
我发现这个遗漏有点奇怪,因为我已经得到了apis来列出其他任何东西。
您可以通过DescribeReservedInstancesOfferings
调用来对其进行处理,该调用列出了您可以购买的所有类型的保留实例 – 我原本认为从中提取唯一的实例类型将是一个合理的近似值(据我所知,没有实例)您无法获得保留实例的类型)。 看起来不像aws
gem支持它。 官方的亚马逊sdk和雾一样
亚马逊尚未发布枚举实例类型的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
- Rubber和Amazon EC2托管问题(Net :: SSH :: AuthenticationFailed:root)
- cap rubber:create_staging接近尾声
- AWS Rails安装失败:activesupport需要Ruby版本> = 2.2.2
- 无法连接到AWS中的rails服务器
- ruby:没有这样的文件加载 – 运行cap rubber时的ubygems(LoadError):create_staging
- Mysql无法通过Amazon EC2上的套接字连接到本地服务器
- 厨师部署?
- mongodb读/写性能和mongo托管在云端
- MySQL不会在与Rubber部署的EC2上连接