Fichier de configuration "dispatch.yaml"

Le fichier dispatch.yaml permet d'ignorer les règles de routage. Le fichier dispatch.yaml sert à envoyer des requêtes entrantes à des services spécifiques, anciennement appelés "modules", en vous basant sur le chemin d'accès ou le nom d'hôte indiqué dans l'URL.

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

Déployer le fichier de distribution

Le fichier dispatch.yaml peut se trouver dans n'importe quel emplacement du répertoire contenant votre code source.

Pour déployer le fichier de configuration "dispatch" sans apporter aucune autre modification à la version active, exécutez l'une des commandes suivantes dans le répertoire contenant votre fichier de distribution, en fonction de l'environnement que vous utilisez :

gcloud

gcloud app deploy dispatch.yaml

Maven

mvn appengine:deployDispatch dispatch.yaml

Gradle

gradle appengineDeployDispatch dispatch.yaml

IDE

Si vous utilisez IntelliJ ou Eclipse, vous devez sélectionner chaque fichier de configuration à déployer à l'aide du formulaire de déploiement.

Pour en savoir plus sur les commandes de déploiement, consultez la page Déployer une application Java.

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, qui dépendent de l'ordre, s'appliquent également aux URL que vous définissez dans le fichier Cron.

Élément Description
service

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

url

Dans l'élément "url", vous définissez le format d'URL, qui peut inclure un nom d'hôte et un chemin d'URL ne dépassant pas 100 caractères. Pour l'élément "service", vous spécifiez le nom du service auquel vous déléguez la gestion de toute requête entrante correspondant au format d'URL de l'élément "url".

Astuce : Vous pouvez inclure des schémas glob à l'élément "url", par exemple à l'aide du caractère générique "*". Ces derniers 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 les caractères glob du chemin d'URL peut être utilisé pour faire correspondre les formats. Ces caractères ne peuvent être spécifiés qu'avant et après le format. Spécifiez le format d'URL entre guillemets.

Sachez que les règles de distribution s'appliquent également aux URL utilisées dans la configuration Cron ou dans la configuration de la file d'attente de tâches.

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 http://simple-sample.appspot.com, et les requêtes telles que http://simple-sample.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 http://simple-sample.appspot.com/mobile/, sont acheminées vers une interface mobile, et les requêtes de nœud de calcul, telles que http://simple-sample.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.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.appspot.com/mobile” to the mobile-frontend service.
- url: "simple-sample.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 :

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

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement standard App Engine pour Java 8