Fichier de configuration dispatch.yaml

ID de la région

Le code REGION_ID est attribué par Google en fonction de la région que vous sélectionnez lors de la création de votre application. L'ajout de REGION_ID.r dans les URL App Engine est facultatif pour les applications existantes. Il sera bientôt nécessaire pour toutes les nouvelles applications.

Pour assurer une transition en douceur, nous mettons lentement à jour App Engine afin d'utiliser les ID de région. Si nous n'avons pas encore mis à jour votre projet Google Cloud, vous ne verrez pas d'ID de région pour votre application. Étant donné que l'ID est facultatif pour les applications existantes, vous n'avez pas besoin de mettre à jour les URL ni d'effectuer d'autres modifications une fois l'ID de région disponible pour vos applications existantes.

En savoir plus sur les ID de région.

Le fichier dispatch.yaml vous permet d'ignorer les règles de routage. Vous pouvez utiliser le fichier dispatch.yaml pour envoyer des requêtes entrantes vers un service spécifique (anciennement appelé "module") en fonction du chemin d'accès ou du nom d'hôte indiqué dans l'URL.

Pour en savoir plus, consultez la page Mode de routage des requêtes.

Une application ne peut contenir qu'un seul fichier dispatch.yaml. Les règles de routage de ce fichier s'appliquent à l'ensemble des services et versions de l'application.

Déployer le fichier de distribution

Pour déployer le fichier dispatch.yaml, exécutez la commande suivante. Avant de déployer votre fichier de distribution, vous devez vous assurer que tous les services définis dans ce fichier ont déjà été déployés sur App Engine.

gcloud

Exécutez la commande gcloud app deploy depuis le répertoire contenant le fichier dispatch.yaml :

gcloud app deploy dispatch.yaml

Pour en savoir plus sur les commandes de déploiement, consultez la section Déployer une application PHP 7.

Syntaxe

L'élément racine du fichier dispatch.yaml est dispatch:. Il contient une liste de définitions de routage spécifiées par les sous-éléments suivants.

Les règles que vous définissez dans le fichier de distribution doivent utiliser des formats d'URL HTTP incluant la notation "." pour séparer les sous-domaines. Les URL définies avec la notation HTTPS "-dot-" ne sont pas acceptées.

Les règles de distribution dépendent de l'ordre des URL et peuvent également s'appliquer aux URL définies dans le fichier Cron.

Élément Description
service

Spécifie le nom du service qui gérera les requêtes correspondant au format url. Notez que les services s'appelaient auparavant modules.

url

Dans l'élément url, définissez le format d'URL entre guillemets, pouvant inclure le nom d'hôte et le chemin d'URL dans la limite de 100 caractères. Pour l'élément service, spécifiez le nom du service devant gérer les requêtes entrantes correspondant au format d'URL de l'élément url.

Astuce : Vous pouvez inclure des schémas glob dans l'élément url, par exemple à l'aide du caractère générique *. Ils ne peuvent être utilisés qu'avant le nom d'hôte et après le chemin d'URL.

Un format d'URL pouvant inclure le nom d'hôte et le chemin d'URL. Les caractères glob peuvent être utilisés pour correspondre aux formats. Ces caractères ne peuvent être spécifiés qu'avant et après le format.

Sachez que les règles de distribution s'appliquent également aux URL utilisées dans la configuration Cron.

Les chemins d'URL commençant par /_ah/ ne sont pas acheminés par le fichier de distribution.

Exemple

Voici un exemple de fichier de distribution qui achemine les requêtes vers https://simple-sample.uc.r.appspot.com, et les requêtes telles que https://simple-sample.uc.r.appspot.com/favicon.ico vers le service default. L'ensemble du contenu statique est distribué par le service default. Les requêtes mobiles, telles que https://simple-sample.uc.r.appspot.com/mobile/, sont acheminées vers une interface mobile, et les requêtes de nœud de calcul, telles que https://simple-sample.uc.r.appspot.com/work/, sont acheminées vers un backend statique.

dispatch:
  # Default service serves the typical web resources and all static resources.
  - url: "*/favicon.ico"
    service: default

  # Default service serves simple hostname request.
  - url: "simple-sample.uc.r.appspot.com/"
    service: default

  # Send all mobile traffic to the mobile frontend.
  - url: "*/mobile/*"
    service: mobile-frontend

  # Send all work to the one static backend.
  - url: "*/work/*"
    service: static-backend

Si vous préférez utiliser des règles de routage générales correspondant à de nombreuses requêtes, vous pouvez définir des règles dont le champ d'application est plus étendu. Exemple :

# Send any path that begins with “simple-sample.uc.r.appspot.com/mobile” to the mobile-frontend service.
- url: "simple-sample.uc.r.appspot.com/mobile*"
  service: mobile-frontend

# Send any domain/sub-domain with a path that starts with “work” to the static backend service.
- url: "*/work*"
  service: static-backend

Vous pouvez également écrire des expressions plus strictes :

# Matches the path "/fun", but not "/fun2" or "/fun/other"
- url: "*/fun"
  service: mobile-frontend

# Matches the hostname 'customer1.myapp.com', but not '1.customer1.myapp.com.
- url: "customer1.myapp.com/*"
  service: static-backend

Limites

Le fichier de distribution peut contenir jusqu'à 20 règles de routage. Lorsque vous spécifiez la chaîne d'URL, ni le nom d'hôte, ni le chemin d'accès ne peuvent comporter plus de 100 caractères.

Supprimer toutes les règles de distribution

Pour supprimer toutes les règles de distribution, procédez comme suit :

  1. Remplacez le contenu du fichier dispatch.yaml par ce qui suit :

    dispatch:
    
  2. Déployez le fichier dispatch.yaml sur App Engine.