1

初めて Ruby AWS ADK V2 を使用しようとしましたが、返されたデータをフォーマットしようとしていますが、使用可能なフォーマットにするのはかなり難しいようです。

やりたいことは、ホスト ゾーンのリストを取得して表に表示することだけです。

私はヘルパーを持っています:

def hosted_zones
  r53 = Aws::Route53::Client.new
    #convert to hash first so we can parse and covert to json
    h = (r53.list_hosted_zones).to_hash
    j = JSON.parse((h.to_json))
end

次に、次の JSON を返します。

{
  "hosted_zones": [{
    "id": "/hostedzone/Z1HSDGASSSME",
    "name": "stagephil.com.",
    "caller_reference": "2016-07-12T15:33:45.277646707+01:00",
    "config": {
      "comment": "Private DNS zone for stage",
      "private_zone": true
    },
    "resource_record_set_count": 10
  }, {
    "id": "/hostedzone/ZJDGASSS0ZN3",
    "name": "stagephil.com.",
    "caller_reference": "2016-07-12T15:33:41.290143511+01:00",
    "config": {
      "comment": "Public DNS zone for stage",
      "private_zone": false
    },
    "resource_record_set_count": 7
  }],
  "is_truncated": false,
  "max_items": 100
}

私は実際に実行していますが、すべてのhosted_zoneエントリを介してテーブルに対話するステートメントを実行しています。

これは応答を取得するための最良の方法ですか、それとも応答を既に json にするように要求できますか?

4

1 に答える 1

1

ハッシュを JSON に変換するのに、再度ハッシュに変換するのはなぜですか? JSON.parse(some_hash.to_json)を与えるだけですsome_hash

そうは言っても、主に AWSの API が XML で応答するという事実のために、JSON を AWS から直接取得することはできないと思います。それがすべての場合、ソリューションは理想的だと思いますが、必要に応じて、HTTP クライアントでリクエストを作成し、受け取った XML を取得して、ActiveSupport のHash.from_xmlのようなものを使用してハッシュを作成できます。その後、JSON に変換できます。

于 2016-11-10T03:10:26.253 に答える