ID de la région
Le REGION_ID
est un code abrégé que Google attribue en fonction de la région que vous sélectionnez lors de la création de votre application. Le code ne correspond pas à un pays ou une province, même si certains ID de région peuvent ressembler aux codes de pays et de province couramment utilisés. Pour les applications créées après février 2020, REGION_ID.r
est inclus dans les URL App Engine. Pour les applications existantes créées avant cette date, l'ID de région est facultatif dans l'URL.
En savoir plus sur les ID de région
Le fichier app.yaml
permet de configurer les paramètres de votre application App Engine.
Il fait correspondre les chemins d'URL avec les gestionnaires de requêtes et les fichiers statiques.
Le fichier app.yaml
contient également des informations sur le code de l'application, telles que l'environnement d'exécution et l'identifiant de la dernière version.
Chaque service de l'application possède son propre fichier app.yaml
, qui sert de descripteur pour son déploiement. Vous devez d'abord créer le fichier app.yaml
pour le service default
avant de pouvoir créer et déployer des fichiers app.yaml
pour des services supplémentaires dans l'application.
Structure des répertoires
Pour savoir comment structurer plusieurs services dans votre application, consultez la page Structurer des services Web dans App Engine.Exemple
Voici un exemple de fichier app.yaml
pour une application PHP 5 :
runtime: php55 api_version: 1 handlers: # Serve images as static resources. - url: /(.+\.(gif|png|jpg))$ static_files: \1 upload: .+\.(gif|png|jpg)$ application_readable: true # Serve php scripts. - url: /(.+\.php)$ script: \1
L'exemple ci-dessus diffuse des fichiers avec l'extension gif
, png
ou jpg
en tant que ressources statiques. Les fichiers ont été configurés de sorte à être lisibles par le code de l'application au moment de l'exécution.
L'exemple diffuse également tous les scripts PHP. Vous pouvez limiter l'action du gestionnaire de scripts aux scripts de niveau racine à l'aide de l'expression url: /([^/]+\.php)
. Pour les applications existantes, il peut s'avérer utile de simuler le routage mod_rewrite $_GET['q']
d'Apache.
Une configuration de app.yaml
plus complète est fournie ci-dessous :
runtime: php55 api_version: 1 handlers: - url: / script: home.php - url: /index\.html script: home.php - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.php login: admin - url: /.* script: not_found.php
Syntaxe
La syntaxe du fichier app.yaml
utilise le format YAML.
Le format YAML accepte les commentaires. Les lignes commençant par le caractère dièse (#
) sont ignorées :
# This is a comment.
Les formats d'URL et de chemin d'accès au fichier utilisent la syntaxe d'expressions régulières POSIX étendue, à l'exception des éléments classés et des classes utilisées pour les classements. Les références arrières aux correspondances groupées, telles que \1
, sont compatibles, de même que les extensions Perl suivantes : \w \W \s \S \d \D
.
Éléments de l'environnement d'exécution et d'application
Élément | Description |
---|---|
application |
L'approche recommandée pour spécifier votre ID d'application consiste à supprimer l'élément
Pour plus d'informations sur l'utilisation de ces commandes, consultez la page Déployer votre application. L'ID d'application est l'ID de projet de la console que vous avez spécifié lors de la création de l'application dans la console Google Cloud. |
api_version |
Obligatoire. La version de l'API dans l'environnement d'exécution donné utilisée par votre application. Ce champ est obsolète dans les versions plus récentes d'App Engine.
Lorsque Google annonce la compatibilité avec une nouvelle version de l'API d'un environnement d'exécution, votre application déployée continue à utiliser celle pour laquelle elle a été écrite. Pour mettre à niveau votre application vers une nouvelle version de l'API, modifiez cette valeur, puis redéployez votre application sur App Engine. Lorsque vous définissez la valeur Pour le moment, App Engine dispose d'une seule version de l'environnement d'exécution |
default_expiration |
Facultatif. Définit une durée de mise en cache globale par défaut pour tous les gestionnaires de fichiers statiques d'une application. Vous pouvez également configurer une durée de mise en cache pour des gestionnaires de fichiers statiques spécifiques. La valeur est une chaîne de nombres et d'unités, séparés par des espaces. Les unités possibles sont "d" pour les jours, "h" pour les heures, "m" pour les minutes et "s" pour les secondes. Par exemple, runtime: php55 api_version: 1 default_expiration: "4d 5h" handlers: # ... Pour en savoir plus, consultez Expiration du cache. |
env_variables
|
Facultatif.
Vous pouvez définir des variables d'environnement dans le fichier L'utilisation des variables d'environnement dont le préfixe est env_variables: MY_VAR: "my value"où MY_VAR et my value sont le nom et la valeur de la variable d'environnement que vous souhaitez définir et où chaque entrée de variable d'environnement est indentée de deux espaces sous l'élément env_variables . Les variables d'environnement dont la valeur n'est pas spécifiée sont définies par défaut sur "None" .
Vous pouvez ensuite récupérer la valeur de ces variables en utilisant echo getenv('MY_VAR');ou echo $_SERVER['MY_VAR']; |
error_handlers |
Facultatif. Permet de configurer les pages d'erreur personnalisées qui s'affichent pour différents types d'erreurs. Cet élément peut contenir les éléments suivants :
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.html |
handlers |
Obligatoire. Liste de formats d'URL, avec la description de leurs modes de gestion. Pour gérer les URL, App Engine peut exécuter le code de l'application ou diffuser des fichiers statiques importés avec le code, tels que des images, des fichiers CSS ou des fichiers JavaScript. Voir la syntaxe de l'élément "handlers" et des sous-éléments |
inbound_services |
Facultatif.
Les applications doivent activer ces services pour pouvoir recevoir des requêtes entrantes. Vous pouvez activer le service pour une application PHP 5 en incluant une section Les services entrants suivants sont disponibles :
inbound_services: - mail - warmup |
instance_class |
Facultatif. Classe d'instance de ce service. Les valeurs suivantes sont disponibles en fonction du scaling de votre service :
|
module |
Remarque : Les modules sont maintenant appelés "services". Pour gérer votre application avec gcloud CLI, utilisez plutôt l'élément service. |
runtime |
Obligatoire. Nom de l'environnement d'exécution utilisé par votre application. Par exemple, pour spécifier PHP 5, utilisez : runtime: php55 |
service |
Les services étaient anciennement appelés "modules".
Compatible seulement avec gcloud CLI ou les plug-ins basés sur gcloud CLI, par exemple :
Obligatoire si vous créez un service.
Facultatif pour le service service: service-name Remarque : La commande module: service-name |
service_account |
Facultatif. L'élément service_account: [SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com |
skip_files |
Facultatif.
L'élément L'élément skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$ Le format par défaut exclut les fichiers de sauvegarde Emacs ayant des noms sous la forme
Pour ajouter des entrées à la liste des expressions régulières ci-dessus, faites-en un copier-coller dans votre fichier skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$ - ^(.*/)?.*\.bak$
Pour ignorer un répertoire complet, ajoutez son nom à la liste. Par exemple, pour ignorer un répertoire nommé skip_files: - logs/ |
version |
L'approche recommandée pour spécifier votre ID de version consiste à supprimer l'élément
Pour plus d'informations sur l'utilisation de ces commandes, consultez la page Déployer votre application. Identifiant de la version du code d'application que vous déployez sur App Engine.
L'ID de version peut contenir des lettres minuscules, des chiffres et des traits d'union. Il ne peut pas commencer par le préfixe
Remarque : Les noms des versions doivent commencer par une lettre pour les distinguer des instances numériques qui sont toujours spécifiées par un nombre. Cela évite l'ambiguïté avec des URL telles que
Chaque version d'une application conserve sa propre copie du fichier |
Élément "handlers"
L'élément handlers
est obligatoire dans le fichier de configuration app.yaml
. L'élément fournit une liste de formats d'URL et une description de la manière dont ils doivent être gérés. Pour gérer les URL, App Engine peut exécuter le code d'application ou diffuser les fichiers statiques transférés avec le code, tels que des fichiers image, CSS ou JavaScript.
Les formats sont évalués selon leur ordre d'apparition dans le fichier app.yaml
, de haut en bas. Le premier mappage dont le format correspond à l'URL est employé pour gérer la requête.
Le tableau suivant répertorie les sous-éléments de l'élément handlers
qui contrôlent le comportement des scripts, des fichiers statiques, des répertoires statiques et d'autres paramètres.
Élément | Description |
---|---|
application_readable |
Facultatif. Valeur booléenne. Par défaut, les fichiers déclarés dans les gestionnaires de fichiers statiques sont importés en tant que données statiques et sont seulement diffusés auprès des utilisateurs finaux. Ils ne peuvent pas être lus par une application. Si ce champ est défini sur "true", les fichiers sont également importés en tant que données de code pour que votre application puisse les lire.
Les deux importations sont imputées aux quotas des ressources de stockage de votre code et de vos données statiques.
Ce champ est obsolète dans les versions plus récentes d'App Engine. |
expiration
|
Facultatif.
Durée pendant laquelle un fichier statique diffusé par ce gestionnaire doit être mis en cache par les serveurs proxy et les navigateurs. La valeur correspond à une chaîne de nombres et d'unités, séparés par des espaces, où les unités possibles sont d pour les jours, h pour les heures, m pour les minutes et s pour les secondes. Par exemple, "4d 5h" définit l'expiration du cache sur une durée de 4 jours et 5 heures après la première requête du fichier. Si cet élément n'est pas spécifié, la valeur default_expiration définie dans l'application s'applique. Pour en savoir plus, consultez Expiration du cache.
|
http_headers |
Facultatif. Vous pouvez définir des en-têtes HTTP pour les réponses de vos gestionnaires de fichiers statiques ou de répertoires. Si vous devez définir des en-têtes HTTP dans vos gestionnaires handlers: - url: /images static_dir: static/images http_headers: X-Foo-Header: foo X-Bar-Header: bar value vary: Accept-Encoding # ... Compatibilité avec le CORSUne des principales applications de cette fonctionnalité consiste à accepter le partage de ressources multi-origines (CORS), tel que l'accès aux fichiers hébergés par une autre application App Engine.
Par exemple, vous pouvez avoir une application de jeu Voici comment faire en sorte que votre gestionnaire de fichiers statiques affiche la valeur d'en-tête de réponse requise : handlers: - url: /images static_dir: static/images http_headers: Access-Control-Allow-Origin: https://mygame.uc.r.appspot.com # ... Remarque : Si vous souhaitez autoriser tous les utilisateurs à accéder à vos éléments, vous pouvez utiliser le caractère générique |
mime_type |
Facultatif. Si vous précisez le type MIME, ce gestionnaire l'utilise pour diffuser tous les fichiers. Dans le cas contraire, le type MIME d'un fichier est dérivé de l'extension du nom de fichier. Si le même fichier est importé avec plusieurs extensions, l'extension obtenue peut dépendre de l'ordre dans lequel les importations ont eu lieu. Pour en savoir plus sur les types de médias MIME disponibles, consultez le site Web de l'IANA sur les types de médias MIME. |
redirect_http_response_code |
Facultatif. L'élément
handlers: - url: /youraccount/.* script: accounts.php secure: always redirect_http_response_code: 301
Lorsque la requête d'un utilisateur est redirigée, le code d'état HTTP est défini sur la valeur du paramètre |
script |
Facultatif. Indique le chemin d'accès au script à partir du répertoire racine de l'application : ... handlers: - url: /profile/(.*)/(.*) script: /employee/\2/\1.php # specify a script Dans les environnements d'exécution App Engine plus récents, le comportement de ce champ a changé. |
secure |
Facultatif. Tous les gestionnaires d'URL peuvent utiliser le paramètre secure , y compris les gestionnaires de scripts et les gestionnaires de fichiers statiques. L'élément secure peut avoir les valeurs suivantes :
handlers: - url: /youraccount/.* script: accounts.php secure: always
Le serveur Web de développement n'accepte pas les connexions HTTPS. Il ignore le paramètre Pour cibler une version spécifique de votre application à l'aide du domaine Pour utiliser des domaines personnalisés avec HTTPS, vous devez d'abord activer et configurer les certificats SSL pour ce domaine. Pour les comptes Google, la connexion et la déconnexion s'effectuent toujours via une connexion sécurisée, quelle que soit la manière dont les URL sont configurées. |
static_dir
|
Facultatif. Chemin d'accès au répertoire contenant les fichiers statiques, à partir du répertoire racine de l'application. Tous les éléments situés après la fin du format
Chaque fichier du répertoire statique est diffusé en utilisant le type MIME correspondant à son extension de nom de fichier, sauf s'il a été remplacé par le paramètre
Tous les fichiers de ce répertoire sont transférés avec votre application en tant que fichiers statiques. App Engine stocke et diffuse des fichiers statiques indépendamment des fichiers de votre application. Les fichiers statiques ne sont pas disponibles par défaut dans le système de fichiers de l'application. Pour modifier ce comportement, définissez l'option handlers: # All URLs beginning with /stylesheets are treated as paths to # static files in the stylesheets/ directory. - url: /stylesheets static_dir: stylesheets # ... |
static_files
|
Facultatif. Un gestionnaire de modèles de fichiers statiques associe un modèle d'URL à des chemins d'accès aux fichiers statiques importés avec l'application. L'expression régulière du format d'URL peut définir des regroupements d'expressions régulières à utiliser pour la construction du chemin d'accès au fichier. Vous pouvez employer cette méthode à la place de handlers: # All URLs ending in .gif .png or .jpg are treated as paths to # static files in the static/ directory. The URL pattern is a # regular expression, with a grouping that is inserted into the # path to the file. - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ # ...
App Engine stocke et diffuse des fichiers statiques indépendamment des fichiers d'application. Les fichiers statiques ne sont pas disponibles par défaut dans le système de fichiers de l'application. Pour modifier ce comportement, définissez l'option Les fichiers statiques doivent être différents des fichiers de code d'application. Si un chemin d'accès à un fichier statique correspond à un chemin d'accès à un script utilisé dans un gestionnaire dynamique, le gestionnaire dynamique ne peut pas accéder au script. |
upload |
Facultatif. Expression régulière qui correspond aux chemins d'accès de tous les fichiers référencés par ce gestionnaire. Elle est nécessaire, car le gestionnaire ne peut pas déterminer quels fichiers de votre répertoire d'application correspondent aux formats |
url |
Élément requis sous Le format d'URL présente des différences de comportement lorsqu'il est utilisé avec les éléments suivants :
|
Éléments de scaling
Les éléments du tableau suivant configurent le scaling de votre application. Pour en savoir plus sur le scaling des applications App Engine, consultez la documentation sur les types de scaling.
Élément | Description |
---|---|
automatic_scaling |
Facultatif. Applicable seulement aux applications qui utilisent une classe d'instance F1 ou supérieure. Spécifiez cet élément pour modifier les paramètres par défaut du scaling automatique, tels que la définition de niveaux minimal et maximal pour le nombre d'instances, la latence et les connexions simultanées d'un service. Cet élément peut contenir les éléments suivants :
automatic_scaling: target_cpu_utilization: 0.65 min_instances: 5 max_instances: 100 min_pending_latency: 30ms max_pending_latency: automatic max_concurrent_requests: 50 |
basic_scaling |
Les applications qui utilisent une classe d'instance B1 ou ultérieure doivent spécifier cet élément ou Cet élément permet le scaling de base des classes d'instances B1 et supérieures. Il peut contenir les éléments suivants :
basic_scaling: max_instances: 11 idle_timeout: 10m |
manual_scaling |
Les applications qui utilisent une classe d'instance B1 ou ultérieure doivent spécifier cet élément ou Cet élément active le scaling manuel des classes d'instances B1 et supérieures, et peut contenir l'élément suivant :
manual_scaling: instances: 5 |