Je souhaite utiliser un point de terminaison de domaine personnalisé Amazon API Gateway derrière une distribution Web Amazon CloudFront. Ensuite, je souhaite transmettre la demande d'API à plusieurs API en utilisant le mappage de chemin de base. Comment puis-je procéder ?
Résolution
Créez le nom de domaine personnalisé pour votre API REST, API HTTP ou API WebSocket
Si ce n'est pas déjà fait, créez votre nom de domaine personnalisé, puis associez-le à deux API différentes.
Remarque : Un nom de domaine personnalisé pour une API WebSocket ne peut pas être mappé à une API REST ou à une API HTTP.
Pour les API REST, suivez les instructions de la section Configuration des noms de domaine personnalisés pour les API REST.
Pour les API HTTP, suivez les instructions de la section Configuration des noms de domaine personnalisés pour les API HTTP.
Pour les API WebSocket, suivez les instructions de la section Configuration des noms de domaine personnalisés pour les API WebSocket.
Remarque : Après avoir créé un nom de domaine personnalisé dans API Gateway, vous devez créer ou mettre à jour l'enregistrement de ressources de votre fournisseur DNS pour le mapper à votre point de terminaison d'API. Pour plus d'informations, voir Enregistrer un nom de domaine.
L'exemple de cet article utilise une configuration de nom de domaine personnalisé régional d'API REST.
Exemples d'URL de terminaison d'API
https://restapiId1.execute-api.us-west-2.amazonaws.com/example1/home
https://restapiId2.execute-api.us-west-2.amazonaws.com/example2/home
Exemple d'URL de domaine personnalisée (sans mappage de chemin de base)
https://apigw.customdomain.com/example1/home
https://apigw.customdomain.com/example2/home
Création d'une distribution Web CloudFront
1. Ouvrez la console CloudFront, puis sélectionnez Créer une distribution.
2. Sur la page Select a delivery method for your content (Sélectionner une méthode de livraison pour votre contenu) sous Web, choisissez Get Started (Démarrer).
3. Sur la page Créer une distribution, pour Origin Domain, collez l'URL du domaine personnalisé de votre API, comme dans l'exemple suivant :
Exemple de nom du domaine d'origine
https://apigw.customdomain.com
- Pour Origin path, laissez-le vide. Remarque : La saisie d'un chemin de base incorrect pour le chemin d'origine lors de l'appel de la distribution Web CloudFront peut entraîner une erreur. Par exemple, une erreur de requête non autorisée qui renvoie le message « Missing Authentication Token » (« Jeton d'authentification manquant ») et un code de réponse 403 Forbidden (403 Interdit).
5. Pour le protocole SSL d'origine minimale, il est recommandé de choisir TLSv1.2. Ne choisissez pas SSLv3. API Gateway ne prend pas en charge le protocole SSLv3.
6. Dans la section Protocole, choisissez HTTPS uniquement. **Remarque :**API Gateway ne prend pas en charge les points de terminaison HTTP non chiffrés. Pour plus d'informations, consultez FAQ sur Amazon API Gateway.
7. (Facultatif) Pour transférer des en-têtes personnalisés vers votre origine, choisissez Ajouter un en-tête, puis entrez le nom et la valeur de votre en-tête. Remarque : Pour obtenir la liste des en-têtes personnalisés que CloudFront ne peut pas ajouter, consultez la section En-têtes personnalisés que CloudFront ne peut pas ajouter aux demandes d'origine.
8. Choisissez Créer une distribution.
Une fois que CloudFront a créé votre distribution, la valeur de la colonne Status (état) de votre distribution passe de InProgress (en cours) à Deployed(déployé).
Pour plus d'informations, consultez Creating a Distribution (Création d'une distribution).
Test de votre distribution Web CloudFront
1. Ouvrez la console CloudFront, copiez le nom de domaine de votre distribution Web dans votre presse-papiers, comme dans l'exemple suivant :
Exemple de nom de domaine non personnalisé
a222222bcdefg5.cloudfront.net
2. Suivez les instructions pour tester une distribution.
Une demande réussie renvoie une réponse 200 OK. Si vous obtenez un code d'erreur de serveur « 500 », il est possible que la distribution ne soit pas déployée. Si vous n'obtenez pas de réponse, il est possible que l'enregistrement CloudFront DNS n'ait pas encore été propagé.
Une fois la distribution CloudFront créée, votre configuration est configurée comme suit :
a222222bcdefg5.cloudfront.net/example1/home --> apigw.customdomain.com/example1/home --> API-1
a222222bcdefg5.cloudfront.net/example2/home --> apigw.customdomain.com/example2/home --> API-2
Vous pouvez désormais envoyer une demande à deux API à partir d'une seule distribution CloudFront avec votre nom de domaine personnalisé API Gateway.
Pour configurer le transfert des en-têtes d'autorisation entrants pour votre distribution Web CloudFront, consultez l'article Comment configurer API Gateway avec ma propre distribution CloudFront ?
Informations connexes
Choix d'un type de point de terminaison à configurer pour une API API Gateway
Utilisation des mappages d'API pour les API Websocket
Utilisation des mappages d'API pour les API REST
Utilisation des mappages d'API pour les API HTTP