0

これを行うためのより効率的な方法はありますか?つまり、別のソースからこの情報を取得するのではなく、スクリプトをリファクタリングして結果をより効率的に取得できるということです。API または SDK 経由の Amazon。

これを返すカールをします

{
         "instanceId" : "i-123abcde",
         "billingProducts" : null,
         "version" : "2001-01-01",
         "accountId" : "123456789012",
         "instanceType" : "m1.large",
         "architecture" : "x86_64",
         "kernelId" : "aki-123ab1ab",
         "ramdiskId" : null,
         "pendingTime" : "2001-01-00T00:00:00Z",
         "availabilityZone" : "us-east-1a",
         "imageId" : "ami-12345ab1",
         "devpayProductCodes" : null,
         "privateIp" : "10.10.10.10",
         "region" : "us-east-1"
         }

これは私のコードブロックです

require 'rubygems'
require 'curb'
require 'pp'

info = Curl.get("http://169.254.169.254/latest/dynamic/instance-identity/document")

foo = info.body_str.split(',').join.scan(/"(.*?)" : "(.*?)"/)

quux = {}
foo.each do |baz|
        quux[baz[0]] = baz[1]
end
pp quux

結果はキー付きのハッシュです

{
         "instanceId" => "i-123abcde",
         "version" => "2001-01-01",
         "accountId" => "123456789012",
         "instanceType" => "m1.large",
         "architecture" => "x86_64",
         "kernelId" => "aki-123ab1ab",
         "pendingTime" => "2001-01-00T00:00:00Z",
         "availabilityZone" => "us-east-1a",
         "imageId" => "ami-12345ab1",
         "privateIp" => "10.10.10.10",
         "region" => "us-east-1"
         }
4

1 に答える 1

2

それがJSONデータです。これを行う:

require 'json'
...
quux = JSON.parse(info.body_str)
于 2013-01-24T20:00:32.920 に答える