2016-04-11 5 views
0

Ich bin ein Neuling für Amazon Services und deren API.Wie wird die ID der gehosteten AWS Route53-Zone abgerufen?

Mit der Amazon route53Clinet-Klasse weiß ich, dass es eine Methode getHostedZone gibt, die die Hosted Zone-Informationen auf der Basis von ID erhält. Aber ich habe einen Fall, wo ich den Domain-Namen habe und ich muss die gehostete Zone ID auf der Grundlage der bereitgestellten Domain-Name abrufen? Wie kann ich das machen?

Antwort

1

Sie können listHostedZones oder listHostedZonesByName verwenden, um den Dienst über Ihre gehosteten Zonen abzufragen.

Allerdings ... Sie müssen die ID der gehosteten Zone bereits kennen - speichern oder zwischenspeichern -, weil es möglich ist, mehr als eine gehostete Zone in Route 53 für genau die gleiche Domain zu erstellen ... und wenn Sie Code blind nach der gehosteten Zone nach Domainnamen sucht, könnte am Ende die falsche ändern ... vor allem, wenn Sie in die Antipatternfalle fallen der Annahme, dass nur ein Spiel möglich ist, und deshalb wählen Sie immer die erste Übereinstimmung.

Einfache Bereitstellungen verfügen nur über eine gehostete Zone für jeden Domänennamen. Gründe für mehrere Bereitstellungen sind jedoch private gehostete Zonen (nur innerhalb der VPC verfügbar) oder duplizierte öffentlich gehostete Zonen, in denen Sie DNS ausführen Wiederaufbau oder harte Umstellung. Mit Route 53 können Sie eine zweite (oder dritte usw.) gehostete Zone mit 4 verschiedenen Nameservern erstellen.

Natürlich ist es sinnvoll, diese Informationen lokal zu haben, um unnötige API-Anfragen zu vermeiden, die Zeit und Geld kosten können. Die ID der gehosteten Zone ist, wie Sie wahrscheinlich bemerkt haben, auch in der Konsole sichtbar.

+0

öffentliche ListeHostedZonesByNameResult listZones (String CNAME) { ListHostedZonesByNameResult zonesResult = new ListHostedZonesByNameResult(); zonesResult = route53Client.listHostedZonesByName (neuer ListHostedZonesByNameRequest(). MitDNSName (CNAME)); Rückgabe zonesResult; } das Auflisten der gehosteten Zone mit der Methode 'withDNSName()' ergab nicht die gehostete Zoneninformation für den angegebenen DNS-Namen. Wie kann ich eine bestimmte gehostete Zone basierend auf DNSName auflisten? Ich verstehe, ich könnte keine gute Idee sein, aber immer noch, wenn ich will ?? wie kann ich das machen? – Shaonline

+0

Sie müssen den Domänennamen am Anfang der Zone verwenden, nicht einen der Quelldatensätze innerhalb der Domäne ... z. 'example.com', nicht' foo.bar.example.com'. –