2012-05-16 38 views
7

我使用aws寶石在西納特拉Web應用程序,其目的是提供一個定製的前端,以實例管理最近開始(集成非AWS工具)的列表。我目前正在處理表單以允許用戶設置所有可能需要設置的選項,其中一個選項是實例類型(m1.small,c1.medium等)。紅寶石AWS - 編程生成可用AWS實例類型

我想什麼是能夠接觸到一些源拉可用類型的列表。我瀏覽了AWS :: EC2文檔,但沒有找到與此說明相匹配的內容。我有沒有必要堅持一個解決方案是aws寶石的一部分,但更重要的,如果它是,因爲這是我已經使用的工具。

你知道的一種以編程方式獲取這些信息?

回答

6

據我所知,這是不可能的。如果可能的話,亞馬遜會在their documentation中列出api調用。

我發現遺漏有點奇怪考慮the've了API列出幾乎任何東西。

你也許可以通過DescribeReservedInstancesOfferings調用它,它列出了所有可以購買的保留實例 - 我認爲從中提取獨特的實例類型將是一個合理的近似值(據我所知沒有實例類型,您無法獲取保留實例)。看起來像aws雖然支持它。該official amazon sdk不一樣,fog

+0

。我想我只是想要某人的確認。我可能最終只是硬編碼我的應用程序的列表,因爲它可能有一個固定的用戶實際需要的數字。 – asfallows

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