Json 使用Route 53 CLI删除记录

Json 使用Route 53 CLI删除记录,json,dns,boto3,aws-cli,amazon-route53,Json,Dns,Boto3,Aws Cli,Amazon Route53,我在使用AWS CLI删除Route 53记录时遇到问题。我有数百个域的列表,每个域都需要删除“a”记录。我想使用CLI来节省时间,但我无法让功能正常工作 例如,假设我有以下域,我想删除两个“A”记录: 我在这里使用的是boto3,但它与我无法使用的AWS CLI API相同()。我的问题在这个api调用的json过滤器中的某个地方: HostedZoneId='ABC123DEF456', ChangeBatch={ 'Comment'

我在使用AWS CLI删除Route 53记录时遇到问题。我有数百个域的列表,每个域都需要删除“a”记录。我想使用CLI来节省时间,但我无法让功能正常工作

例如,假设我有以下域,我想删除两个“A”记录:

我在这里使用的是boto3,但它与我无法使用的AWS CLI API相同()。我的问题在这个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]

我认为类型的简单记录和别名类型的简单记录之间存在一些混淆。也就是说,简单别名记录不应该没有
ResourceRecords

要检查它们在您的案例中的描述方式,可以使用以下命令:

aws route53 list-resource-record-sets --hosted-zone-id <your-zone-id>
带别名的简单记录

        {
            "Name": "<simple-alias.example.com.>",
            "Type": "A",
            "AliasTarget": {
                "HostedZoneId": "Z06990762X86XLR2ZGTK4",
                "DNSName": "<example>.",
                "EvaluateTargetHealth": true
            }
        },

{
“名称”:“,
“类型”:“A”,
“别名目标”:{
“HostedZoneId”:“Z06990762X86XLR2ZGTK4”,
“DNSName”:“,
“EvaluateTargetAlth”:正确
}
},

为了澄清,如果我添加TTL,我会得到相同的错误。如果我添加TTL并去掉AliasTarget,我得到的错误是:请求无效:缺少字段“SetIdentifier”,因为这是一个简单的路由策略,我看不到/预计会有SetIdentifier感谢这一澄清。我的记录被列为“简单记录”,而不是“带别名的简单记录”。我从查询中去掉了“AliasTarget”,并且作为列表资源记录集,我也去掉了“Region”,这就成功了。再次感谢!
        {
            "Name": "<simple-alias.example.com.>",
            "Type": "A",
            "AliasTarget": {
                "HostedZoneId": "Z06990762X86XLR2ZGTK4",
                "DNSName": "<example>.",
                "EvaluateTargetHealth": true
            }
        },