向 AWS Route 53 添加元素 JSON

Adding Elements to AWS Route 53 JSON

我一直在尝试以编程方式更新 AWS Route 53 DNS 记录,因此我一直在使用 jq 更新以下 JSON 文件;

{
  "Comment": "Update 'A' record for drivepoc.biz zone file",
  "Changes": [
    {
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "www.domain.biz.",
        "Type": "A",
        "TTL": 60,
        "ResourceRecords": [
          {
            "Value": "123.123.123.123"
          }
        ]
      }
    }
  ]
}

因此,现有条目 "Value": "123.123.123.123" 需要保留,但需要额外条目 "Value": "456.456.456.456"。我最近要做的是:

cat a_record.json | jq '.Changes[0].ResourceRecordSet.ResourceRecords |= .+ ["Value: 456.456.456.456"]'

但这把它放在大括号外面并且引号是错误的;

 "ResourceRecords": [
   {
     "Value": "52.18.219.57"
   },
   "Value": "456.456.456.456"
 ]

而不是要求的;

 "ResourceRecords": [
   {
     "Value": "52.18.219.57"
   },
   {
     "Value": "456.456.456.456"
   }
 ]

有人可以给我一些提示吗?

您正在向该数组添加对象,而不是字符串。创建要插入的对象。

.Changes[].ResourceRecordSet.ResourceRecords += [{Value:"456.456.456.456"}]