Utiliser des mappages d'URL

Ce guide vous explique comment configurer des mappages d'URL Google Cloud. 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 :

L'équilibrage de charge HTTP(S) interne et Traffic Director sont compatibles avec des cas d'utilisation avancés de gestion du trafic. Pour en savoir plus, consultez les pages suivantes :

Configurer des mappages d'URL

Vous pouvez ajouter des services de backend et des buckets backend à un mappage d'URL.

Les buckets backends sont compatibles avec les équilibreurs de charge HTTP(S) externes uniquement.

Ajouter un mappage d'URL

Console

Pour ajouter un mappage d'URL avec Cloud Console , procédez comme suit :

  1. Accédez à la page Équilibrage de charge.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le Nom d'un équilibreur de charge.
  3. Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
  4. Sélectionnez Règles d'hôte et de chemin d'accès.
  5. Cliquez sur Ajouter une règle d'hôte et de chemin d'accès.
  6. Renseignez le champ Hôte, le champ Chemins d'accès ou les deux, puis sélectionnez un service de backend ou un compartiment backend.
  7. 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 l'outil de ligne de commande gcloud, utilisez 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 HTTP(S) internes, assurez-vous d'inclure l'option --region lorsque vous créez le mappage d'URL.

Un mappage d'URL nouvellement créé ne correspond qu'à un seul chemin d'accès, celui par défaut (/*). Cette mise en correspondance de chemin d'accès par défaut est créée automatiquement. Tout le trafic qui ne correspond pas à une règle d'hôte ou de mise en correspondance de chemin d'accès créée manuellement est envoyé au service de backend de mappage d'URL par défaut.

Ajouter une mise en correspondance de chemin d'accès

Une mise en correspondance de chemin d'accès effectue le mappage des chemins ou des préfixes de chemins d'accès des requêtes HTTP(S), (par exemple, /video) vers des services de backend. Tout le trafic correspondant au chemin d'accès spécifié est traité par des règles de chemin d'accès dans la mise en correspondance de chemin. Si un chemin correspond à une règle de chemin d'accès, la requête est transmise aux backends associés à cette règle de chemin d'accès. Si une requête correspond aux règles de la mise en correspondance de chemin d'accès no path, la requête est transférée vers le backend par défaut de la mise en correspondance.

Console

Pour créer une mise en correspondance de chemin d'accès à l'aide de Cloud Console, procédez comme suit :

  1. 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.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le Nom d'un équilibreur de charge.
  3. Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
  4. Dans l'écran 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 ou cliquez sur un champ Chemins d'accès existant.
  5. Entrez le chemin d'accès de la configuration, par exemple, /video.
  6. 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 créer une mise en correspondance des chemins d'accès à l'aide de l'outil de ligne de commande gcloud, exécutez la commande gcloud compute url-maps add-path-matcher :

gcloud compute url-maps add-path-matcher URL_MAP_NAME \
   --default-service BACKEND_SERVICE \
   --path-matcher-name PATH_MATCHER \
   [--path-rules="PATH=SERVICE"]

Cette commande nécessite un service de backend par défaut auquel elle peut envoyer des requêtes sans correspondance. Vous pouvez aussi utiliser l'option --path-rules pour définir des mappages entre les chemins d'accès des requêtes et les services de 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"

Les commandes url-maps create et url-maps add-path-matcher comportent un paramètre --default-service. Dans la commande create, le service par défaut est celui utilisé si aucune des mises en correspondance de chemins d'accès ne correspond à l'URL entrante. Dans add-path-matcher, le service par défaut est celui utilisé si le chemin d'accès correspond à la mise en correspondance, mais qu'aucune des règles --path-rules ne correspond.

Ajouter une règle d'hôte

Console

Pour créer une règle d'hôte à l'aide de Cloud Console, procédez comme suit :

  1. 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.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le Nom d'un équilibreur de charge.
  3. Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
  4. Sur l'écran 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 ou sur un champ Hôtes existant.
  5. Saisissez un nom d'hôte complet, par exemple web.example.com.
  6. 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 créer une règle d'hôte à l'aide de l'outil de ligne de commande gcloud, exécutez 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

L'indicateur --hosts définit un ensemble d'hôtes pour mettre en correspondance les requêtes. 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

Sélectionner un service de backend ou un bucket backend

Console

Pour sélectionner un service de backend ou un bucket backend pour un mappage d'URL, procédez comme suit :

  1. 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.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le Nom d'un équilibreur de charge.
  3. Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
  4. Sur l'écran Règles d'hôte et de chemin d'accès, dans le menu déroulant du champ Backends, sélectionnez un service de backend ou un bucket backend disponible.
  5. 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 sélectionner un service de backend ou un bucket backend à l'aide de l'outil de ligne de commande gcloud, 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 ...]

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. Notez que 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 actuellement déployé. Ce fonctionnement diffère des autres commandes de mappage d'URL (edit, import), qui exécutent les mêmes tests, mais enregistrent la nouvelle configuration si les tests réussissent. Utilisez la commande validate lorsque vous souhaitez tester une nouvelle configuration de routage sans modifier le mappage d'URL actuellement déployé.

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. Notez qu'il n'est pas nécessaire d'utiliser des services actifs ni même des services existants pour les tests. Vous pouvez utiliser n'importe quel exemple de nom de service pour créer et exécuter les tests. Ce fonctionnement diffère d'autres commandes de mappage d'URL (telles que edit, import), dans lesquelles le mappage d'URL doit faire référence à des sites existants (mais pas nécessairement actifs).

Console

Vous ne pouvez pas utiliser Cloud Console 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 :

gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
  • 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.

  1. 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
    
  2. Modifiez le fichier YAML avec la nouvelle configuration. Par exemple, si vous souhaitez modifier un équilibreur de charge HTTP(S) 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 backend video-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
    
  3. 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'.
    
  4. 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
    

Tester 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.

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 Cloud Console, procédez comme suit :

  1. Accédez à la page Équilibrage de charge.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le Nom d'un équilibreur de charge.
  3. Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
  4. Cliquez sur Host and path rules (Règles d'hôte et de chemin d'accès).
  5. Sous l'option Règles d'hôte et de chemin d'accès, cliquez sur Afficher les tests de configuration.
  6. Cliquez sur Ajouter un test de configuration. Ajoutez les URL de test et les backends suivants :
    • Test URL example.com et Backend www-service.
    • Test URL example.net et Backend www-service.
    • Test URL example.net/web et Backend www-service.
    • Test URL example.com/videos et Backend video-service.
    • Test URL example.com/videos/browse et Backend video-service.
    • Test URL example.net/static et Backend static-service.
    • Test URL example.net/static/images et Backend static-service.
  7. 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 des tests à votre mappage d'URL à l'aide de l'outil de ligne de commande gcloud, 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 HTTP(S) 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

Pour les équilibreurs de charge HTTP(S) internes, vos URL de service doivent pointer vers des services de backend régionaux. Exemple :

https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices//www-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.

Répertorier des mappages d'URL

Console

Vous ne pouvez pas répertorier tous vos mappages d'URL dans Cloud Console.

gcloud

Pour afficher une liste de mappages d'URL à l'aide de l'outil de ligne de commande gcloud, 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 :

  1. Accédez à la page Équilibrage de charge.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le Nom d'un équilibreur de charge.
  3. Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
  4. 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 l'outil de ligne de commande gcloud, 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 :

  1. Accédez à la page Équilibrage de charge.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le Nom d'un équilibreur de charge.
  3. Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
  4. Dans l'écran Détails de l'équilibreur de charge, affichez les règles d'hôte et de chemin d'accès.
  5. Cliquez sur le "X" à droite d'un mappage d'URL pour le supprimer. Le mappage d'URL disparaît.
  6. 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 l'outil de ligne de commande gcloud, utilisez 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 :

  1. Accédez à la page Équilibrage de charge.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le Nom d'un équilibreur de charge.
  3. Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
  4. Sélectionnez Règles d'hôte et de chemin d'accès.
  5. 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.
  6. 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 :

  1. 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.

    Accéder à la page Équilibrage de charge

  2. Cliquez sur le Nom d'un équilibreur de charge.
  3. Sur l'écran Détails de l'équilibreur de charge, cliquez sur Modifier pour l'équilibreur de charge sélectionné.
  4. Sélectionnez Règles d'hôte et de chemin d'accès.
  5. Dans le champ Hôtes d'un mappage d'URL existant, cliquez sur le "x" "dans le nom de l'hôte.
  6. 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

Étape suivante