Comment résoudre l'erreur « CNAMEAlreadyExists » lorsque je crée un nom de domaine personnalisé optimisé pour la périphérie pour mon API API Gateway ?

Lecture de 4 minute(s)
0

Je reçois une erreur « CNAMEAlreadyExists » lorsque j'essaie de créer un nom de domaine personnalisé optimisé pour la périphérie pour mon API Amazon API Gateway. Comment puis-je résoudre ce problème ?

Brève description

L'erreur « CNAMEAlreadyExists » se produit si :

  • Le type d'enregistrement CNAME pour votre nom de domaine personnalisé existe déjà et pointe vers une distribution Amazon CloudFront.
  • Il existe une distribution CloudFront configurée avec un autre nom de domaine ou CNAME qui correspond à votre nom de domaine personnalisé.

Remarque : il n'est pas rare de recevoir des erreurs « Too Many Requests » (Trop de requêtes) lorsque vous effectuez plusieurs mises à jour d'un nom de domaine personnalisé dans un court laps de temps. Ces erreurs se produisent en raison du faible quota pour l'API CreateDomainName (une requête toutes les 30 secondes par compte). Pour plus d'informations, consultez la section Quotas API Gateway concernant la création, le déploiement et la gestion d'une API.

Important : vous ne pouvez pas utiliser le même enregistrement CNAME pour plus d'une distribution CloudFront. L'utilisation du même enregistrement CNAME renvoie l'erreur suivante :

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*

Pour résoudre ces erreurs et créer un nom de domaine personnalisé optimisé pour la périphérie, vous devez d'abord supprimer l'enregistrement CNAME existant qui pointe vers une distribution CloudFront.

Résolution

Confirmation de l'existence préalable du nom de domaine personnalisé

1.FSPPour confirmer si le nom de domaine personnalisé existait auparavant, exécutez une commande de recherche DNS sur le nom de domaine.

Sur les systèmes Linux, Unix ou macOS :

dig abc.example.com +all

Sur Windows :

nslookup abc.example.com

Remarque : remplacez abc.example.com par votre nom de domaine.

2.FSPSi le nom de domaine personnalisé existait auparavant et que son enregistrement DNS est toujours là, utilisez dig pour obtenir l'enregistrement CNAME dans la sortie :

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

Important :

Vous devez supprimer cet enregistrement avant de pouvoir créer le nom de domaine personnalisé.

  • Il est recommandé de modifier d'abord les paramètres DNS dans un environnement de développement ou de test. La modification manuelle des paramètres DNS de production peut entraîner des temps d'arrêt.
  • Si la sortie affiche un enregistrement A (adresse IPv4) au lieu d'un enregistrement CNAME, vous devez mettre l'enregistrement à jour. L'enregistrement mis à jour doit pointer le nom de domaine personnalisé (alias A) vers la distribution CloudFront.

Si un dig ou un nslookup est effectué sur le nom de domaine et que l'enregistrement est un alias A, vérifiez la distribution CloudFront. Assurez-vous que la distribution CloudFront n'est pas configurée avec un autre nom de domaine. Pour plus d'informations, consultez la section Comparaison d'enregistrements d'alias et CNAME.

Suppression de l'enregistrement CNAME ou mise à jour de votre distribution CloudFront

Effectuez l'une des opérations suivantes ou les deux en fonction de votre configuration :

Si vous disposez d'un fournisseur de services DNS tiers, suivez la procédure de votre fournisseur pour supprimer l'enregistrement CNAME qui pointe vers votre distribution CloudFront.

Si vous utilisez Amazon Route 53, supprimez l'enregistrement dans Route 53 qui pointe vers CloudFront.

Après avoir apporté les modifications de configuration, attendez quelques minutes que les modifications DNS prennent effet. Ensuite, réessayez de créer le nom de domaine personnalisé.

Remarque : si vous recevez des erreurs « CNAMEAlreadyExists », consultez la section Comment résoudre l'erreur CNAMEAlreadyExists lors de la configuration d'un alias CNAME pour ma distribution Amazon CloudFront ?


Informations connexes

Comment configurer un nom de domaine personnalisé pour mon API API Gateway ?

Création d’une application sans serveur multi-région grâce à Amazon API Getaway et AWS Lambda

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans