【发布时间】:2021-01-03 11:00:47
【问题描述】:
我的第一个问题是,最好的方法是什么?在我看来,不中断流量的唯一方法是通过 AWS CLI,但如果有更简单的方法,我会全力以赴!如果 CLI 是执行此操作的方法,我会遇到以下命令的问题:
aws route53 change-resource-record-sets --hosted-zone-id XXXXXXXXXXXX --change-batch file://update-record.json
update-record.json 包含以下内容:
{
"Comment": "Swaps the Policy Record for a simple routing policy",
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "www.example.com",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "XXXXXXXXXXXX",
"DNSName": "xxxxxxxxxxxxx.cloudfront.net",
"EvaluateTargetHealth": false
}
}
}
]
}
我得到的错误是:
An error occurred (InvalidChangeBatch) when calling the ChangeResourceRecordSets operation: [Tried to create an alias that targets xxxxxxxxxxxxx.cloudfront.net., type A in zone XXXXXXXXXXXX, but the alias target name does not lie within the target zone, Tried to create an alias that targets xxxxxxxxxxxxx.cloudfront.net., type A in zone XXXXXXXXXXXX, but that target was not found]
帐户中记录的托管区域 ID 是准确的,分配 DNS 名称也是如此。记录名称www.example.com 也存在于帐户中。该分发的备用域名 (CNAME) 为 www.example.com。
我也尝试将更改作为删除和创建,而不是upsert:
{
"Comment": "Swaps the Policy Record for a simple routing policy",
"Changes": [
{
"Action": "DELETE",
"ResourceRecordSet": {
"Name": "www.example.com.",
"Type": "A",
"TrafficPolicyInstanceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
},
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "www.example.com.",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "XXXXXXXXXXXX",
"DNSName": "xxxxxxxxxxxxx.cloudfront.net",
"EvaluateTargetHealth": false
}
}
}
]
}
分两步执行此操作会产生相同的错误消息。
【问题讨论】:
标签: amazon-cloudfront aws-cli amazon-route53