Wie kann ich den Fehler „CNAMEAlreadyExists“ beheben, wenn ich einen Edge-optimierten benutzerdefinierten Domain-Namen für meine API Gateway-API erstelle?

Lesedauer: 3 Minute
0

Ich erhalte die Fehlermeldung „CNAMEAlreadyExists“, wenn ich versuche, einen Edge-optimierten benutzerdefinierten Domain-Namen für meine Amazon API Gateway-API zu erstellen.

Kurzbeschreibung

Der Fehler „CNAMEAlreadyExists“ tritt auf, wenn:

  • Der CNAME-Eintragstyp für deinen benutzerdefinierten Domainnamen ist bereits vorhanden und verweist auf eine Amazon CloudFront-Distribution.
  • Es gibt eine CloudFront-Distribution, die mit einem alternativen Domainnamen oder CNAME konfiguriert ist, der deinem benutzerdefinierten Domainnamen entspricht.

Hinweis: Es ist nicht ungewöhnlich, dass du die Fehlermeldung „Too Many Requests“ erhältst, wenn du in kurzer Zeit mehrere benutzerdefinierte Domain-Namen-Aktualisierungen vornimmst. Diese Fehler treten aufgrund eines niedrigen Kontingents für die CreateDomainName-API auf (eine Anforderung alle 30 Sekunden pro Konto). Weitere Informationen findest du unter API Gateway-Kontingente für die Erstellung, Bereitstellung und Verwaltung einer API.

**Wichtig:**Du kannst denselben CNAME-Eintrag nicht für mehr als eine CloudFront-Distribution verwenden. Wenn du denselben CNAME-Datensatz verwendest, wird der folgende Fehler zurückgegeben: „One or more of the CNAMEs you provided are already associated with a different resource. (Service: AmazonCloudFront; Statuscode: 409; Error Code: CNAMEAlreadyExists; Request ID: a123456b-c78d-90e1-23f4-gh5i67890jkl.“

Um diese Fehler zu beheben und einen Edge-optimierten benutzerdefinierten Domain-Namen zu erstellen, musst du zunächst den vorhandenen CNAME-Datensatz löschen, der auf eine CloudFront-Distribution verweist.

Behebung

Bestätige, ob der benutzerdefinierte Domain-Name bereits vorhanden war

1. Um zu überprüfen, ob der benutzerdefinierte Domain-Name zuvor existierte, führe einen DNS-Suchbefehl für den Domain-Namen aus.

Auf Linux-, Unix- oder macOS-Systemen:

dig abc.example.com +all

Unter Windows:

nslookup abc.example.com

Hinweis: Ersetze abc.example.com durch deinen Domain-Namen.

2. Wenn der benutzerdefinierte Domain-Name schon einmal existierte und der DNS-Datensatz immer noch da ist, verwende dig, um den CNAME-Datensatz in der Ausgabe abzurufen:

abc.example.comcom. 0        IN    CNAME    d27am47dhauq2.cloudfront.net.

Wichtig:

Du musst diesen Datensatz löschen, bevor du den benutzerdefinierten Domainnamen erstellen kannst.

  • Es hat sich bewährt, die DNS-Einstellungen zuerst in einer Entwicklungs- oder Testumgebung zu ändern. Das manuelle Ändern der Produktions-DNS-Einstellungen kann zu Ausfallzeiten führen.
  • Wenn die Ausgabe einen A-Datensatz (IPv4-Adresse) anstelle eines CNAME-Datensatzes anzeigt, musst du den Datensatz aktualisieren. Der aktualisierte Datensatz muss den benutzerdefinierten Domainnamen (A-Alias) auf die CloudFront-Distribution verweisen.

Wenn für den Domainnamen eine Ausgrabung oder eine NS-Suche durchgeführt wurde und es sich bei dem Datensatz um einen A-Alias handelt, überprüfe die CloudFront-Verteilung. Stelle sicher, dass die CloudFront-Distribution nicht mit einem alternativen Domainnamen konfiguriert ist. Weitere Informationen findest du unter Vergleich von Alias- und CNAME-Datensätzen.

Lösche den CNAME-Eintrag oder aktualisiere deine CloudFront-Distribution

Führe je nach Konfiguration einen oder beide der folgenden Schritte aus:

Wenn du einen externen DNS-Dienstanbieter hast, folge dem Prozess deines Anbieters, um den CNAME-Eintrag zu löschen, der auf deine CloudFront-Distribution verweist.

Wenn du Amazon Route 53 verwendest, lösche den Datensatz in Route 53, der auf CloudFront verweist.

Nachdem du die Konfigurationsänderungen vorgenommen hast, warte einige Minuten, bis die DNS-Änderungen übernommen werden. Versuche dann erneut, den benutzerdefinierten Domainnamen zu erstellen.

**Hinweis:**Wenn du „cNameAlreadyExists“ -Fehler erhältst, findest du weitere Informationen unter Wie behebe ich den Fehler cNameAlreadyExists, wenn ich einen CNAME-Alias für meine Amazon CloudFront-Distribution einrichte?

Ähnliche Informationen

Wie kann ich einen benutzerdefinierten Domainnamen für meine API Gateway-API einrichten?

Aufbau einer serverlosen Anwendung für mehrere Regionen mit Amazon API Gateway und AWS Lambda

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Monaten