Come posso risolvere l'errore "CNAMEAlreadyExists" quando creo un nome di dominio personalizzato ottimizzato per l'edge per la mia API Gateway API?

4 minuti di lettura
0

Ricevo un errore "CNameAlreadyExists" quando provo a creare un nome di dominio personalizzato ottimizzato per l'edge per Gateway Amazon API. Come posso risolvere questo problema?

Descrizione breve

L'errore "CNameAlreadyExists" si verifica se:

  • Il tipo di record CNAME per il tuo nome di dominio personalizzato esiste già e fa riferimento a una distribuzione Amazon CloudFront.
  • Esiste una distribuzione CloudFront configurata con un nome di dominio alternativo o CNAME che corrisponde al tuo nome di dominio personalizzato.

Nota: Non è raro ricevere errori "Too Many Requests" quando si effettuano diversi aggiornamenti di nomi di dominio personalizzati in un breve lasso di tempo. Questi errori si verificano a causa del numero ridotto di quote richieste per l'API CreateDomainName (una richiesta ogni 30 secondi per account). Per ulteriori informazioni, consulta Quote di API Gateway per la creazione, la distribuzione e la gestione di un'API.

Importante: Non puoi utilizzare lo stesso record CNAME per più di una distribuzione CloudFront. L'utilizzo dello stesso record CNAME restituisce il seguente errore:

One or more of the CNAMEs you provided are already associated with a different resource. (Service: AmazonCloudFront; Status Code: 409; Error Code: CNAMEAlreadyExists; Request ID: a123456b-c78d-90e1-23f4-gh5i67890jkl*

Per risolvere questi errori e creare un nome di dominio personalizzato ottimizzato per l'edge, devi prima eliminare il record CNAME esistente che rimanda a una distribuzione CloudFront.

Risoluzione

Confermare se il nome di dominio personalizzato esisteva in precedenza

  1. Per confermare se il nome di dominio personalizzato esisteva in precedenza, esegui un comando di ricerca DNS sul nome di dominio.

Su sistemi Linux, Unix o macOS:

dig abc.example.com +all

Su Windows:

nslookup abc.example.com

**Nota:**Sostituisci abc.example.com con il tuo nome di dominio.

  1. Se il nome di dominio personalizzato esisteva in precedenza e il relativo record DNS è ancora presente, usa dig per richiedere il record CNAME nell'output:
abc.example.comcom. 0        IN    CNAME    d27am47dhauq2.cloudfront.net.

Importante:

È necessario eliminare questo record prima di poter creare il nome di dominio personalizzato.

  • È consigliabile modificare prima le impostazioni DNS in un ambiente di sviluppo o test. La modifica manuale delle impostazioni DNS di produzione potrebbe causare tempi di inattività.
  • Se l'output mostra un record A (indirizzo IPv4), anziché un record CNAME, è necessario aggiornare il record. Il record aggiornato deve indirizzare il nome di dominio personalizzato (alias A) alla distribuzione CloudFront.

Se viene eseguito un dig o nslookup sul nome di dominio e il record è un alias A, controlla la distribuzione CloudFront. Assicurati che la distribuzione CloudFront non sia configurata con un nome di dominio alternativo. Per ulteriori informazioni, vedi Comparison of alias and CNAME records.

Eliminazione del record CNAME o aggiornamento della distribuzione CloudFront

Effettua almeno una delle seguenti operazioni a seconda della configurazione:

Se disponi di un provider di servizi DNS di terze parti, segui la procedura del provider per eliminare il record CNAME che rimanda alla tua distribuzione CloudFront.

Se utilizzi Amazon Route 53, elimina il record in Route 53 che rimanda a CloudFront.

Dopo aver apportato le modifiche alla configurazione, attendi qualche minuto per la propagazione delle modifiche al DNS. Quindi, prova a creare nuovamente il nome di dominio personalizzato.

Nota: Se ricevi errori "CNameAlreadyExists", vedi Come faccio a risolvere l'errore CNAMEAlreadyExists quando configuro un alias CNAME per la mia distribuzione CloudFront?


Informazioni correlate

How can I set up a custom domain name for my API Gateway API?

Building a multi-Region serverless application with Amazon API Gateway and AWS Lambda