使用 Route 53 CLI 删除记录
Using Route 53 CLI to delete records
我在使用 AWS CLI 删除 Route 53 记录时遇到问题。我有一个包含数百个域的列表,每个域都需要删除 'A' 条记录。我想使用 CLI 来执行此操作以节省时间,但我无法使用该功能。
例如,假设我有以下域并且我想删除两条 'A' 条记录:
我在这里使用的是 boto3,但它与我无法正常工作的 AWS CLI API (https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html) 相同。我的问题出在这个 api 调用的 json 过滤器中的某处:
HostedZoneId='ABC123DEF456',
ChangeBatch={
'Comment': 'deleteing A records for domains',
'Changes': [
{
'Action': 'DELETE',
'ResourceRecordSet': {
'Name': 'example.com',
'Type': 'A',
'Region': 'us-east-1',
'ResourceRecords': [
{
"Value": "1.2.3.4"
}
],
'AliasTarget': {
'HostedZoneId': 'ABC123DEF456',
'DNSName': 'example.com',
'EvaluateTargetHealth': False
}
}
}
]
}
我得到的错误是:
InvalidInput: An error occurred (InvalidInput) when calling the ChangeResourceRecordSets operation: Invalid request: Expected exactly one of [AliasTarget, all of [TTL, and ResourceRecords], or TrafficPolicyInstanceId], but found more than one in Change with [Action=DELETE, Name=example.com, Type=A, SetIdentifier=null]
我认为 A 类型的简单记录和别名 A 类型的简单记录之间存在一些混淆。即,简单的别名记录不应该没有 ResourceRecords
.
要检查它们在您的案例中的描述方式,您可以使用以下命令:
aws route53 list-resource-record-sets --hosted-zone-id <your-zone-id>
上述命令的输出应该有助于构建您的DELETE
。
以下是我的 route53 的输出示例:
简单记录
{
"Name": "<simple-a.example.com.>",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "1.2.3.4"
}
]
}
带别名的简单记录
{
"Name": "<simple-alias.example.com.>",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "Z06990762X86XLR2ZGTK4",
"DNSName": "<example>.",
"EvaluateTargetHealth": true
}
},
我在使用 AWS CLI 删除 Route 53 记录时遇到问题。我有一个包含数百个域的列表,每个域都需要删除 'A' 条记录。我想使用 CLI 来执行此操作以节省时间,但我无法使用该功能。
例如,假设我有以下域并且我想删除两条 'A' 条记录:
我在这里使用的是 boto3,但它与我无法正常工作的 AWS CLI API (https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html) 相同。我的问题出在这个 api 调用的 json 过滤器中的某处:
HostedZoneId='ABC123DEF456',
ChangeBatch={
'Comment': 'deleteing A records for domains',
'Changes': [
{
'Action': 'DELETE',
'ResourceRecordSet': {
'Name': 'example.com',
'Type': 'A',
'Region': 'us-east-1',
'ResourceRecords': [
{
"Value": "1.2.3.4"
}
],
'AliasTarget': {
'HostedZoneId': 'ABC123DEF456',
'DNSName': 'example.com',
'EvaluateTargetHealth': False
}
}
}
]
}
我得到的错误是:
InvalidInput: An error occurred (InvalidInput) when calling the ChangeResourceRecordSets operation: Invalid request: Expected exactly one of [AliasTarget, all of [TTL, and ResourceRecords], or TrafficPolicyInstanceId], but found more than one in Change with [Action=DELETE, Name=example.com, Type=A, SetIdentifier=null]
我认为 A 类型的简单记录和别名 A 类型的简单记录之间存在一些混淆。即,简单的别名记录不应该没有 ResourceRecords
.
要检查它们在您的案例中的描述方式,您可以使用以下命令:
aws route53 list-resource-record-sets --hosted-zone-id <your-zone-id>
上述命令的输出应该有助于构建您的DELETE
。
以下是我的 route53 的输出示例:
简单记录
{
"Name": "<simple-a.example.com.>",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "1.2.3.4"
}
]
}
带别名的简单记录
{
"Name": "<simple-alias.example.com.>",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "Z06990762X86XLR2ZGTK4",
"DNSName": "<example>.",
"EvaluateTargetHealth": true
}
},