7

私は最近aws、インスタンス管理 (非 AWS ツールの統合) にカスタマイズされたフロントエンドを提供することを目的とした Sinatra Web アプリケーションで gem を使い始めました。私は現在、設定が必要なすべてのオプションをユーザーが設定できるようにするフォームに取り組んでおり、それらのオプションの 1 つはインスタンス タイプ (m1.small、c1.medium など) です。

私が望むのは、利用可能なタイプのリストを引き出すために何らかのソースに手を差し伸べることです。AWS::EC2 のドキュメントを調べましたが、この説明に一致するものは見つかりませんでした。ソリューションが gem の一部であると主張する必要はありませんが、awsそうであればなおさらです。なぜなら、それは私が既に使用しているツールだからです。

この情報をプログラムで収集する方法を知っていますか?

4

2 に答える 2

6

私が知る限り、これは不可能です。可能であれば、Amazon はドキュメントに API 呼び出しをリストします

他のほとんどすべてをリストするAPIがあることを考えると、省略は少し奇妙だと思います。

購入できるすべての種類の予約済みインスタンスをリストする呼び出しを介してそれをこじ開けることができDescribeReservedInstancesOfferingsます-そこから一意のインスタンスタイプを抽出することは妥当な近似値であると考えていました(私が知る限り、インスタンスタイプはありません)の予約インスタンスを取得することはできません)。awsただし、宝石がそれをサポートしているようには見えません。フォグと同様に、公式のamazon SDKも同様です。

于 2012-05-17T10:33:48.567 に答える
2

以下は、Amazon がまだインスタンス タイプを列挙するための 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 に答える