Ce guide vous explique comment configurer des mappages d'URL Google Cloud. Un mappage d'URL est un ensemble de règles permettant de diriger les requêtes HTTP(S) entrantes vers des services de backend ou des buckets backend spécifiques.
Un mappage d'URL minimal fait correspondre tous les chemins de requêtes entrantes (/*
).
Avant de suivre ce guide, familiarisez-vous avec les concepts de mappage d'URL.
Les mappages d'URL sont utilisés avec les produits Google Cloud suivants :
- Équilibreur de charge d'application externe (modes mondial, régional et classique)
- Équilibreur de charge d'application interne
- Traffic Director
Les mappages d'URL utilisés avec les équilibreurs de charge d'application externes globaux, les équilibreurs de charge d'application externes régionaux, les équilibreurs de charge d'application internes et Traffic Director sont également compatibles avec plusieurs fonctionnalités avancées de gestion du trafic. Pour en savoir plus, consultez la page Concepts de mappage d'URL : Gestion avancée du trafic.
Valeurs par défaut du mappage d'URL
Les mappages d'URL possèdent deux valeurs par défaut, comme décrit dans le tableau suivant.
Type par défaut | Paramètre | Signification |
---|---|---|
Mappage d'URL par défaut | gcloud compute url-maps create
|
Le service de backend ou le bucket backend spécifié par défaut est utilisé si aucune des mises en correspondance de chemins d'accès ou des règles d'hôte ne correspond à l'URL entrante. |
Valeur par défaut de l'outil de mise en correspondance des chemins d'accès | gcloud compute url-maps add-path-matcher
|
Le service de backend ou le bucket backend spécifié par défaut est utilisé si le chemin de l'URL correspond à un outil de mise en correspondance des chemins d'accès, mais qu'aucune des règles --path-rules ne correspond. |
Règles d'hôte
Une règle d'hôte définit un ensemble d'hôtes pour mettre en correspondance les requêtes.
Dans une règle d'hôte, le nom d'hôte doit être un nom de domaine complet. Le nom d'hôte ne peut pas être une adresse IPv4 ou IPv6. Exemple :
- Fonctionne :
example.com
- Fonctionne :
web.example.com
- Fonctionne :
*.example.com
- Ne fonctionne pas :
35.244.221.250
Configurer des mappages d'URL
Un mappage d'URL peut envoyer du trafic vers des services de backend ou des buckets backend. Les buckets backend ne sont pas compatibles avec les équilibreurs de charge d'application externes régionaux et les équilibreurs de charge d'application internes.
Console
Pour ajouter un mappage d'URL avec la console Google Cloud, procédez comme suit :
- Accédez à la page Équilibrage de charge.
- Cliquez sur le Nom d'un équilibreur de charge.
- Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
- Sélectionnez Règles d'hôte et de chemin d'accès.
- Cliquez sur Ajouter une règle d'hôte et de chemin d'accès.
Renseignez le champ Hôte, le champ Chemins d'accès ou les deux, puis sélectionnez un service de backend ou un bucket backend.
- Saisissez un nom d'hôte complet, par exemple
web.example.com
. - Saisissez le chemin d'accès, par exemple,
/video
. - Sur la page Règles d'hôte et de chemin d'accès, dans le menu Backends, sélectionnez un service de backend ou un bucket backend disponible.
- Saisissez un nom d'hôte complet, par exemple
Cherchez la coche bleue à gauche des règles d'hôte et de chemin d'accès, puis cliquez sur le bouton Mettre à jour.
gcloud
Pour ajouter un mappage d'URL à l'aide de Google Cloud CLI, exécutez la commande url-maps create
:
gcloud compute url-maps create URL_MAP_NAME \ (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \ [--description DESCRIPTION] \ [--global | --region=REGION]
Pour les équilibreurs de charge d'application externes régionaux et les équilibreurs de charge d'application internes, veillez à inclure l'option --region
lorsque vous créez le mappage d'URL.
Pour supprimer une mise en correspondance de chemins d'accès, exécutez la commande gcloud compute url-maps add-path-matcher
:
gcloud compute url-maps add-path-matcher URL_MAP_NAME \ (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \ --path-matcher-name PATH_MATCHER \ [--path-rules="PATH=SERVICE or BUCKET"]
Cette commande nécessite un service de backend ou un bucket backend par défaut auquel elle peut envoyer des requêtes sans correspondance. L'option --path-rules
définit les mappages entre les chemins d'accès des requêtes et les services ou buckets backend. L'exemple de chemin d'accès suivant dirige les requêtes /video/
et /video/*
vers le service de backend video-service
:
--path-rules="/video=video-service,/video/*=video-service"
Pour créer une règle d'hôte, utilisez la commande gcloud compute url-maps add-host-rule
:
gcloud compute url-maps add-host-rule URL_MAP_NAME \ --hosts=[HOSTS] --path-matcher-name=PATH_MATCHER
Par exemple, la valeur --hosts
suivante met en correspondance les requêtes pour www.example.com
et n'importe quel sous-domaine de google.com
:
--hosts=[*.google.com,www.example.com]
Pour modifier le service ou le bucket par défaut d'un mappage d'URL, exécutez la commande url-maps set-default-service
:
gcloud compute url-maps set-default-service URL_MAP_NAME (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE)[GCLOUD_WIDE_FLAG ...]
Terraform
Pour créer un mappage d'URL global, utilisez la ressource google_compute_url_map.
Pour créer un mappage d'URL régional, utilisez la ressource google_compute_region_url_map.
Valider la configuration du mappage d'URL
Avant de déployer un mappage d'URL, assurez-vous de valider sa configuration pour vous assurer que le mappage redirige les requêtes vers les backends appropriés. Pour ce faire, vous pouvez ajouter des tests à la configuration du mappage d'URL. Vous pouvez tester différentes règles de mappage d'URL et exécuter autant de tests que nécessaire pour être sûr que le mappage acheminera le trafic de manière appropriée lors de son déploiement. En outre, si des modifications de règles sont nécessaires à l'avenir, vous pouvez les tester avant de les lancer en production avec la nouvelle configuration.
Exécutez la commande gcloud compute url-maps
validate
pour valider la configuration du mappage d'URL. Cette commande ne teste que la configuration fournie.
Que les tests réussissent ou échouent, aucune modification n'est enregistrée dans le mappage d'URL déployé. Ce comportement est différent des autres commandes de mappage d'URL (edit
, import
), qui exécutent également les mêmes tests, mais qui enregistrent la nouvelle configuration si les tests réussissent. Lorsque vous souhaitez tester une nouvelle configuration de routage sans modifier le mappage d'URL déployé, utilisez la commande validate
.
La commande validate
vous permet de tester des configurations de route avancées, telles que le routage basé sur des en-têtes et des paramètres de requête, les redirections HTTP vers HTTPS et les réécritures d'URL.
Console
Vous ne pouvez pas utiliser la console Google Cloud pour valider une configuration de mappage d'URL.
Utilisez plutôt gcloud
ou l'API REST.
gcloud
Pour valider la configuration de votre mappage d'URL, utilisez la commande gcloud compute url-maps validate
.
Pour l'équilibreur de charge d'application externe global :
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --global
Pour l'équilibreur de charge d'application classique :
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \ --load-balancing-scheme=EXTERNAL \ --global
- Remplacez PATH_TO_URL_MAP_CONFIG_FILE par le chemin d'accès du fichier contenant la configuration du mappage d'URL à valider.
Valider les modifications apportées au mappage d'URL d'un équilibreur de charge existant
Si vous disposez d'un équilibreur de charge existant qui nécessite des modifications du mappage d'URL, vous pouvez tester ces changer de configuration avant de les appliquer.
Exportez le mappage d'URL existant de l'équilibreur de charge vers un fichier YAML.
gcloud compute url-maps export URL_MAP_NAME \ --destination PATH_TO_URL_MAP_CONFIG_FILE \ --global
Modifiez le fichier YAML avec la nouvelle configuration. Par exemple, si vous souhaitez modifier un équilibreur de charge d'application externe et envoyer toutes les requêtes ayant comme chemin
/video
vers un nouveau service de backend appelévideo-backend-service
, vous pouvez ajouter des tests à la configuration de mappage d'URL comme suit :Configuration d'un mappage d'URL existant avec un seul
web-backend-service
par défaut :kind: compute#urlMap name: URL_MAP_NAME defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
Modification de la configuration du mappage d'URL à l'aide de tests et d'un outil de mise en correspondance des chemins d'accès pour le service par défaut
web-backend-service
et le nouveau service de backendvideo-backend-service
:kind: compute#urlMap name: URL_MAP_NAME defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service hostRules: - hosts: - '*' pathMatcher: pathmap pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service name: pathmap pathRules: - paths: - /video - /video/* service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service tests: - description: Test routing to existing web service host: foobar path: / service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service - description: Test routing to new video service host: foobar path: /video service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service
Validez la nouvelle configuration.
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
Si tous les tests réussissent, un message de réussite semblable celui-ci doit s'afficher :
Successfully validated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_CONFIG_FILE_NAME]
Si les tests échouent, un message d'erreur s'affiche. Apportez les corrections nécessaires au fichier de configuration du mappage d'URL et tentez à nouveau de valider la configuration.
Error: Invalid value for field 'urlMap.tests': ''. Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
Une fois que vous avez confirmation que la nouvelle configuration fonctionne et qu'elle n'a aucune incidence sur votre configuration existante, vous pouvez l'importer dans le mappage d'URL. Notez que cette étape déploie également le mappage d'URL avec la nouvelle configuration.
gcloud compute url-maps import URL_MAP_NAME \ --source PATH_TO_URL_MAP_CONFIG_FILE \ --global
Ajouter des tests à un mappage d'URL
Vous pouvez ajouter des tests de configuration à un mappage d'URL pour vous assurer que votre mappage d'URL dirige les requêtes vers les services de backend ou les buckets backend comme prévu.
Cette section décrit comment ajouter des tests à un mappage d'URL qui a déjà été déployé. Si vous souhaitez tester de nouvelles modifications dans un mappage d'URL sans le déployer effectivement, consultez la section Valider la configuration du mappage d'URL.
Lorsque vous modifiez votre mappage d'URL, les tests sont exécutés et un message d'erreur s'affiche en cas d'échec d'un test.
Error: Invalid value for field 'urlMap.tests': ''. Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
L'ajout de tests à des mappages d'URL est facultatif.
Console
Pour exécuter des tests à partir de la console Google Cloud, procédez comme suit :
- Accédez à la page Équilibrage de charge.
- Cliquez sur le Nom d'un équilibreur de charge.
- Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
- Cliquez sur Règles de routage. Pour un équilibreur de charge d'application classique, il s'agit de règles d'hôte et de chemin d'accès.
- Cliquez sur Afficher les tests de configuration.
- Cliquez sur Ajouter un test de configuration. Ajoutez les URL de test et les backends suivants :
- Testez l'hôte et le chemin d'accès 1
example.com
et le backendwww-service.
- Testez l'hôte et le chemin d'accès 2
example.net
et le backendwww-service.
- Testez l'hôte et le chemin d'accès 3
example.net/web
et le backendwww-service.
- Testez l'hôte et le chemin d'accès 4
example.com/videos
et le backendvideo-service.
- Testez l'hôte et le chemin d'accès 5
example.com/videos/browse
et le backendvideo-service.
- Testez l'hôte et le chemin d'accès 6
example.net/static
et le backendstatic-service.
- Testez l'hôte et le chemin d'accès 7
example.net/static/images
et le backendstatic-service.
- Testez l'hôte et le chemin d'accès 1
- Cherchez la coche bleue à gauche de Règles de routage, puis cliquez sur le bouton Mettre à jour. Pour un équilibreur de charge d'application classique, recherchez la coche bleue à côté de Règles d'hôte et de chemin d'accès.
gcloud
Pour ajouter des tests à votre mappage d'URL à l'aide de Google Cloud CLI, exécutez la commande gcloud compute url-maps edit
:
gcloud compute url-maps edit URL_MAP_NAME
Un éditeur de texte apparaît. Pour les équilibreurs de charge d'application externes, vos tests doivent utiliser le format suivant :
tests: - host: example.com service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service - host: example.net service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service - host: example.com path: /videos service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service - host: example.com path: /videos/browse service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service - host: example.net path: /web service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service - host: example.net path: /static service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service - host: example.net path: /static/images service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service
Notez que si vous ne spécifiez pas d'hôte dans une règle d'hôte, les URL de tous les hôtes (example.com et example.net) peuvent correspondre. Si vous disposez déjà de règles d'hôte, vous devez créer des règles qui correspondent à la fois à example.com et à example.net.
Obtenir la liste des mappages d'URL
Console
Vous ne pouvez pas répertorier tous vos mappages d'URL dans la console Google Cloud.
gcloud
Pour afficher une liste de mappages d'URL à l'aide de Google Cloud CLI, exécutez la commande url-maps list
.
gcloud compute url-maps list
Obtenir des informations sur un mappage d'URL
Console
Pour obtenir des informations sur un mappage d'URL, procédez comme suit :
- Accédez à la page Équilibrage de charge.
- Cliquez sur le Nom d'un équilibreur de charge.
- Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
- Affichez les règles d'hôte et de chemin d'accès.
gcloud
Pour obtenir des informations sur un seul mappage d'URL à l'aide de Google Cloud CLI, exécutez la commande url-maps describe
.
gcloud compute url-maps describe URL_MAP_NAME
Supprimer un mappage d'URL
Vous ne pouvez supprimer un mappage d'URL qu'après avoir supprimé tous les proxys cibles qui y font référence. Pour en savoir plus, consultez la section Supprimer un proxy cible.
Console
Pour supprimer un mappage d'URL, procédez comme suit :
- Accédez à la page Équilibrage de charge.
- Cliquez sur le Nom d'un équilibreur de charge.
- Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
- Sur l'écran Détails de l'équilibreur de charge, affichez les règles d'hôte et de chemin d'accès.
- Cliquez sur le "X" à droite d'un mappage d'URL pour le supprimer. Le mappage d'URL disparaît.
- Cherchez la coche bleue à gauche des règles d'hôte et de chemin d'accès, puis cliquez sur le bouton Mettre à jour.
gcloud
Pour supprimer un mappage d'URL à l'aide de Google Cloud CLI, exécutez la commande url-maps delete
.
Avant de pouvoir supprimer un mappage d'URL, tout proxy HTTP cible faisant référence au mappage d'URL doit d'abord être supprimé.
gcloud compute url-maps delete URL_MAP_NAME [--quiet]
Supprimer une mise en correspondance de chemin d'accès
Console
Pour supprimer une mise en correspondance de chemin d'accès, procédez comme suit :
- Accédez à la page Équilibrage de charge.
- Cliquez sur le Nom d'un équilibreur de charge.
- Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
- Sélectionnez Règles d'hôte et de chemin d'accès.
- Dans le champ Chemins d'accès d'un mappage d'URL existant, cliquez sur le "x" dans le nom de la mise en correspondance de chemin d'accès.
- Cherchez la coche bleue à gauche des règles d'hôte et de chemin d'accès, puis cliquez sur le bouton Mettre à jour.
gcloud
Pour supprimer une mise en correspondance de chemins d'accès, exécutez la commande gcloud compute url-maps remove-path-matcher
:
gcloud compute url-maps remove-path-matcher URL_MAP_NAME \ [--path-matcher-name PATH_MATCHER]
Supprimer une règle d'hôte
Console
Pour supprimer une règle d'hôte, procédez comme suit :
- Si vous n'êtes pas déjà sur l'écran Règles d'hôte et de chemin d'accès, accédez à la page Équilibrage de charge.
- Cliquez sur le Nom d'un équilibreur de charge.
- Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
- Sélectionnez Règles d'hôte et de chemin d'accès.
- Dans le champ Hôtes d'un mappage d'URL existant, cliquez sur le "x" "dans le nom de l'hôte.
- Cherchez la coche bleue à gauche des règles d'hôte et de chemin d'accès, puis cliquez sur le bouton Mettre à jour.
gcloud
Pour supprimer une règle d'hôte de votre mappage d'URL, exécutez la commande gcloud compute url-maps remove-host-rule
:
gcloud compute url-maps remove-host-rule URL_MAP_NAME --host=HOST
Par exemple, pour supprimer une règle d'hôte qui contient l'hôte google.com
à partir d'un mappage d'URL nommé my-map
, exécutez la commande suivante :
gcloud compute url-maps remove-host-rule my-map --host google.com
Guides de gestion du trafic
Les fonctionnalités de mappage d'URL ne sont pas toutes disponibles pour l'ensemble des produits. Les mappages d'URL sont utilisés avec les équilibreurs de charge pour prendre en charge plusieurs fonctionnalités de gestion avancée du trafic, qui ne sont pas toutes compatibles avec l'équilibreur de charge d'application classique.
Utilisez le tableau suivant pour en savoir plus sur les fonctionnalités de mappage d'URL dans le cadre de la gestion.
Documentation de référence sur l'API et la CLI gcloud
En plus de la console Google Cloud, vous pouvez utiliser l'API et gCloud CLI pour créer des mappages d'URL.
API
Pour une description des propriétés et des méthodes disponibles lorsque vous utilisez des mappages d'URL via l'API REST, consultez les pages suivantes :
Produit | Documentation sur l'API |
---|---|
Équilibreur de charge d'application externe | urlMaps |
Équilibreur de charge d'application interne | regionUrlMaps |
Traffic Director | urlMaps |
CLI gcloud
Pour Google Cloud CLI, consultez les ressources suivantes :
- gcloud compute url-maps
- Champ d'application global :
--global
- Champ d'application régional :
--region=[REGION]
- Champ d'application global :
Pour une gestion avancée du trafic, utilisez des fichiers YAML et importez-les à l'aide de la commande gcloud compute url-maps import
.
Étape suivante
- Pour en savoir plus sur le fonctionnement des mappages d'URL, consultez la section Présentation des mappages d'URL.
- Pour plus d'informations sur le fonctionnement des mappages d'URL dans les équilibreurs de charge d'application externes, consultez la page Présentation de l'équilibreur de charge d'application externe.
- Pour plus d'informations sur le fonctionnement des mappages d'URL dans les équilibreurs de charge d'application internes, consultez la page Présentation de l'équilibreur de charge d'application interne.