2012-07-11 4 views
9

Ich verwende die folgenden, um route53 Datensätze zu löschen. Ich bekomme keine Fehlermeldungen.Boto - So löschen Sie einen Datensatz von route53 -Tried, um Ressourcensatz zu löschen, aber es wurde nicht gefunden

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() 

alle erforderlichen Felder vorhanden sind, und sie match..weight, identifier, ttl = 60 usw. \

z.B.

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

Ich möchte 111.111.111.222 und den Datensatz löschen.

Also, was ist der richtige Weg, um einen Datensatz zu löschen?

Für einen Datensatz, ich werde mehrere Werte haben, die durch eine eindeutige Kennung unterschieden werden. Wenn eine IP-Adresse aktiv wird, möchte ich von route53 entfernen. Ich benutze einen armen Mann Lastenausgleich.

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> 

Dank

Antwort

1

Sind Sie sicher, dass Sie alle diese Parameter für add_change müssen?

Look at add_change here.

Standardparameter werden an die Funktion gegeben, so dass Sie durch die Bereitstellung Gewicht und TTL-over-Angabe sein kann.

Versuchen Sie, Gewicht und TTL zu entfernen (möglicherweise müssen Sie den Bezeichner beibehalten). This blog bietet ein einfaches Beispiel zum Löschen von Datensätzen:

Auch kann ich nicht die Werte Ihrer Parameter, die Sie übergeben, aber ihre Integrität und versuchen, ein ". am Ende Ihrer Subdomain

1

Ich versuchte ähnliches Beispiel und musste alle Felder einschließlich Gewicht und ttl für eine erfolgreiche Löschung angeben. (Indem es den Standard beibehalten hat, hat es nicht funktioniert). Das ursprüngliche Problem konnte nicht mit dem gewichteten DNS-Datensatz und dem explizit übergebenen TTL erstellt werden.

Verwandte Themen