9

我正在使用以下内容删除 route53 记录。我没有收到错误消息。

conn = Route53Connection(aws_access_key_id, aws_secret_access_key)
changes = ResourceRecordSets(conn, zone_id)
change = changes.add_change("DELETE",sub_domain, "A", 60,weight=weight,identifier=identifier)
change.add_value(ip_old)
changes.commit()

所有必填字段都存在并且它们匹配..重量、标识符、ttl=60 等。\

例如

test.com. A 111.111.111.111 60 1 id1
test.com. A 111.111.111.222 60 1 id2

我想删除 111.111.111.222 和记录集。

那么,删除记录集的正确方法是什么?

对于记录集,我将有多个由唯一标识符区分的值。当一个 ip 地址处于活动状态时,我想从 route53 中删除。我正在使用一个糟糕的负载平衡。

Here is the meta of the record  want to delete.  
{'alias_dns_name': None,
  'alias_hosted_zone_id': None,
  'identifier': u'15754-1',
  'name': u'hui.com.',
  'resource_records': [u'103.4.xxx.xxx'],
  'ttl': u'60',
  'type': u'A',
  'weight': u'1'}



Traceback (most recent call last):
  File "/home/ubuntu/workspace/rtbopsConfig/classes/redis_ha.py", line 353, in <module>
    deleteRedisSubDomains(aws_access_key_id, aws_secret_access_key,platform=platform,sub_domain=sub_domain,redis_domain=redis_domain,zone_id=zone_id,ip_address=ip_address,weight=1,identifier=identifier)
  File "/home/ubuntu/workspace/rtbopsConfig/classes/redis_ha.py", line 341, in deleteRedisSubDomains
    changes.commit()
  File "/usr/local/lib/python2.7/dist-packages/boto-2.3.0-py2.7.egg/boto/route53/record.py", line 131, in commit
    return self.connection.change_rrsets(self.hosted_zone_id, self.to_xml())
  File "/usr/local/lib/python2.7/dist-packages/boto-2.3.0-py2.7.egg/boto/route53/connection.py", line 291, in change_rrsets
    body)
boto.route53.exception.DNSServerError: DNSServerError: 400 Bad Request
<?xml version="1.0"?>
<ErrorResponse xmlns="https://route53.amazonaws.com/doc/2011-05-05/"><Error><Type>Sender</Type><Code>InvalidChangeBatch</Code><Message>Tried to delete resource record set hui.com., type A, SetIdentifier 15754-1  but it was not found</Message></Error><RequestId>9972af89-cb69-11e1-803b-7bde5b9c457d</RequestId></ErrorResponse>

谢谢

4

3 回答 3

1

我尝试了类似的示例,并且必须指定所有字段,包括权重和 ttl 才能成功删除。(通过保持默认,它不起作用)。无法使用加权 DNS 记录产生原始问题并明确通过 ttl。

于 2014-09-15T09:27:50.883 回答
1

您确定需要 add_change 的所有这些参数吗?

在这里查看 add_change。

为函数提供了默认参数,因此您可能会通过提供权重和 TTL 来过度指定。

尝试将重量和 TTL 排除在外(您可能需要保留标识符)。本博客提供了一个删除记录的简单示例:

此外,我看不到您传递的参数的值,但请确保它们的完整性并尝试包含“。” 在您的子域末尾

于 2013-04-30T15:16:57.330 回答
0

博托3

import boto3

client = boto3.connect('route53')
hosted_zone_id = "G5LEP7LWYS8WL2"

response = client.change_resource_record_sets(
    ChangeBatch={
        'Changes': [
            {
                'Action': 'DELETE',
                'ResourceRecordSet': {
                    'Name': 'test.example.com',
                    'ResourceRecords': [
                        {
                            'Value': '10.1.1.1',
                        },
                    ],
                    'Type': 'A',
                },
            },
        ]
    },
    HostedZoneId=hosted_zone_id,
)

print(response)

来源:https ://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/route53.html#Route53.Client.change_resource_record_sets

博托

import boto
from boto.route53.record import ResourceRecordSets

conn = boto.connect_route53()

hosted_zone_id = "G5LEP7LWYS8WL2"
record_sets = ResourceRecordSets(conn, hosted_zone_id)

change = record_sets.add_change("DELETE", "test.example.com", "A")
change.add_value("10.1.1.1")

response = record_sets.commit()
print(response)

资料来源:https ://danieljamesscott.org/17-software/development/33-manipulating-aws-route53-entries-using-boto.html

于 2020-08-07T17:48:59.867 回答