Aws ruby version3 での話です。CLIはjsonを作らないといけなそうですが、rubyだとそこが必要ないので楽。UPSERTはドキュメントによると無ければCREATE、あればUPDATEとのこと。
またactionにDELETEを指定することでレコードを削除できる。
client = Aws::Route53::Client.new(region: "ap-northeast-1")
resp = client.change_resource_record_sets({
change_batch: {
changes: [
{
action: "UPSERT",
resource_record_set: {
name: "xxx.example.com",
resource_records: [
{
value: "192.0.2.44",
},
],
ttl: 60,
type: "A",
},
},
],
comment: "Web server for example.com",
},
hosted_zone_id: "YOUR_HOST_ZONE",
})