複数の値でファイルを自動的に更新

複数の値でファイルを自動的に更新

複数のアドレスにルーティングされるホスティング領域とレコードセットがあります。リストからIPアドレスを追加または削除してレコードセットを更新したいです。残念ながら、AWS CLIはRoute53のリソースレコード値を削除/追加するオプションを提供していません。

{
      "Comment": "Update the A record set",
      "Changes": [
        {
          "Action": "UPSERT",
          "ResourceRecordSet": {
            "Name": "mydomain.com",
            "Type": "A",
            "TTL": 300,
            "ResourceRecords": [
              {
                "Value": "XX.XX.XX.XX"
              }
            ]
          }
        }
      ]
    }

これにより、jsonに複数のIPアドレスを手動で追加できます。しかし、bashを使用してjsonファイルに複数のIPを自動的に追加したいと思います。

{
    "Comment": "Update the A record set",
    "Changes": [{
        "Action": "UPSERT",
        "ResourceRecordSet": {
            "Name": "mydomain.com",
            "Type": "A",
            "TTL": 300,
            "ResourceRecords": [{
                    "Value": "XX.XX.XX.XX"
                },
                {
                    "Value": "XX.XX.XX.XX"
                }
            ]
        }
    }]
}

ベストアンサー1

追加する、使う

$ jq '.Changes[0].ResourceRecordSet.ResourceRecords += [{"Value": "foobar"}]' file.json
{
  "Comment": "Update the A record set",
  "Changes": [
    {
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "mydomain.com",
        "Type": "A",
        "TTL": 300,
        "ResourceRecords": [
          {
            "Value": "XX.XX.XX.XX"
          },
          {
            "Value": "foobar"
          }
        ]
      }
    }
  ]
}

おすすめ記事