Mise à niveau vers la dernière version de l'environnement flexible App Engine

Cette page est destinée aux développeurs utilisant l'environnement flexible avec le paramètre vm:true dans leur fichier app.yaml et qui souhaitent effectuer une mise à niveau vers la dernière version, ce qui requiert la modification de la configuration de l'application.

Cette page ne s'applique pas à la mise à niveau à partir de l'environnement standard App Engine, décrit dans Migrer des services de l'environnement standard vers l'environnement flexible.

Mettre à niveau vers l'environnement flexible

Pour effectuer une mise à niveau vers l'environnement flexible à partir de l'environnement de VM gérées :

  1. Dans le fichier de configuration app.yaml, remplacez l'entrée obsolète vm: true par env: flex. Exemple :
    runtime: ruby
    env: flex
  2. Consultez la liste des modifications destructives pour déterminer si d'autres modifications sont nécessaires dans votre fichier app.yaml.
  3. Au cours de la mise à niveau, envisagez d'apporter des modifications pour utiliser les nouvelles fonctionnalités.
  4. Après avoir apporté les modifications nécessaires, déployez la nouvelle version de votre application sur App Engine.

    Par exemple, dans le répertoire racine de l'application où se trouve le fichier app.yaml, exécutez la commande suivante :

    gcloud app deploy

Types de machines à cœur partagé

Les types de machines à cœur partagé comportant moins de 1 processeur virtuel, ne sont pas pris en charge dans l'environnement flexible App Engine. Si vous utilisez des machines à cœur partagé, lorsque vous passez à env:flex, vous devez mettre à niveau vos machines afin qu'elles soient dotées d'au moins un cœur. Vous pouvez également déplacer l'application vers l'environnement standard App Engine.

Requêtes de préchauffage

Les requêtes /_ah/warmup ne sont pas prises en charge dans l'environnement flexible App Engine.

Pour préchauffer votre application, mettez en œuvre un gestionnaire de vérification de l'état ne renvoyant l'état prêt qu'une fois l'application préchauffée.

Par exemple, vous pouvez créer une vérification de préparation renvoyant un état prêt après l'initialisation du cache afin que votre application ne reçoive aucun trafic tant qu'elle n'est pas prête.

Fichiers statiques

Si vous définissez des fichiers statiques dans la section handlers: du fichier app.yaml, ces derniers sont ensuite diffusés directement à partir d'instances App Engine au lieu d'une autre infrastructure App Engine. L'interface et le comportement sont identiques, toutefois, une petite quantité de ressources processeur et d'autres ressources sont utilisées sur les instances App Engine lorsqu'un fichier est diffusé.

Ressources cachées

Les ressources sous-jacentes aux déploiements d'environnement flexibles (notamment Cloud Load Balancing, les instances Compute Engine et les groupes d'instances gérés) sont masquées dans la console Google Cloud Platform afin de fournir une abstraction plus complète d'une application App Engine et de ses instances. Chaque instance peut être affichée et contrôlée depuis la page Instances de la console GCP.

Il est encore possible de déverrouiller et d'atteindre les instances via SSH à des fins de débogage. Au lieu d'utiliser la commande gcloud compute instances, utilisez gcloud app instances. Vous pouvez également établir des connexions SSH à partir de la page Instances de la console GCP.

Modifications importantes

La mise à niveau vers l'environnement flexible App Engine nécessite quelques modifications de votre code et de vos fichiers de configuration. Cette section inclut les abandons et les modifications importantes à prendre en compte avant de déployer votre application à l'aide de la configuration env: flex.

Abandon de bibliothèques

Les bibliothèques suivantes et les services qui leur sont associés sont obsolètes depuis le 15 novembre 2016 et ne sont pas pris en charge dans l'environnement flexible :

Modifications du fichier app.yaml

Remplacez la configuration obsolète vm:true de votre fichier app.yaml par le paramètre d'environnement flexible env:flex.

Modifications relatives à l'authentification

Vous devez également mettre à jour le fichier app.yaml de manière à supprimer ou remplacer les autres paramètres de configuration obsolètes :

  • Gestionnaires sécurisés
    Le paramètre secure sous handlers est désormais obsolète pour l'environnement flexible App Engine. Si vous avez besoin d'une redirection SSL, vous pouvez mettre à jour le code de votre application et utiliser l'en-tête X-Forwarded-Proto pour rediriger le trafic http. Vous pouvez également utiliser l'en-tête de réponse HTTP Strict Transport Security.
  • Gestionnaires de connexion
    Le paramètre login sous handlers est désormais obsolète pour l'environnement flexible App Engine. Vous devez suivre les instructions relatives à la section Migrer le service de gestion des utilisateurs.

Modifications relatives aux variables d'environnement

Les variables d'environnement suivantes ont été supprimées ou renommées. La variable d'environnement de remplacement est répertoriée si elle est disponible :

Variable d'environnement obsolète Nouvelle variable d'environnement (le cas échéant)
APPENGINE_LOADBALANCER
APPENGINE_LOADBALANCER_IP
GAE_AFFINITY
GAE_APPENGINE_HOSTNAME
GAE_MINOR_VERSION
GAE_LONG_APP_ID GOOGLE_CLOUD_PROJECT
GAE_MODULE_INSTANCE GAE_INSTANCE
GAE_MODULE_NAME GAE_SERVICE
GAE_MODULE_VERSION GAE_VERSION
GAE_PARTITION
GAE_VM
HOSTNAME
MEMCACHE_ENV_DEBIAN_FRONTEND
MEMCACHE_ENV_PORT
MEMCACHE_NAME
MEMCACHE_PORT
MEMCACHE_PORT_11211_TCP
MEMCACHE_PORT_11211_TCP_ADDR
MEMCACHE_PORT_11211_TCP_PORT
MEMCACHE_PORT_11211_TCP_PROTO
MODULE_YAML_PATH
SERVER_SOFTWARE
USE_MVM_AGENT

Modifications relatives à l'en-tête de requête

Les en-têtes de requête HTTP suivants ont été modifiés :

  • Suppression de toutes les requêtes :

    • X-GOOGLE-REAL-IP
    • X-APPENGINE-API-TICKET
    • X-APPENGINE-AUTH-DOMAIN
    • X-APPENGINE-DATACENTER
    • X-APPENGINE-DEFAULT-VERSION-HOSTNAME
    • X-APPENGINE-HTTPS
    • X-APPENGINE-REQUEST-ID-HASH
    • X-APPENGINE-REQUEST-LOG-ID
    • X-APPENGINE-USER-IS-ADMIN
    • X-APPENGINE-USER-IP
  • Désormais inclus dans toutes les requêtes :

    • X-FORWARDED-FOR
    • X-CLOUD-TRACE-CONTEXT
    • X-FORWARDED-PROTO

Service Memcache

Pour créer un cache d'application, créez une instance Cloud Memorystore et connectez-la à votre application à l'aide de l'accès au VPC sans serveur.

Files d'attente de tâches

Pour utiliser le service de file d'attente de tâches d'envoi en dehors de l'environnement standard de première génération, vous pouvez utiliser l'API Cloud Tasks.

Dans les nombreux cas où l'utilisation de files d'attente de retrait est possible, telle que la mise en file d'attente de tâches ou de messages qui seront retirés et traités par des travaux distincts, Cloud Pub/Sub est une bonne alternative offrant des fonctionnalités et des garanties de livraison similaires.

Modifications relatives au routage d'URL

Vous ne pouvez plus acheminer le trafic vers des instances spécifiques pour les applications qui s'exécutent dans l'environnement flexible. Par exemple, vous ne pouvez pas diriger de requêtes vers l'instance instanceID :

https://instanceID-dot-versionID-dot-serviceID-dot-app-id.appspot.com

Nouvelles fonctionnalités à prendre en compte lors de la mise à niveau

Prenez note des améliorations suivantes dont vous pouvez profiter lors de la mise à niveau de votre application :

Modification des tarifs

La version de l'environnement flexible App Engine présente un nouveau modèle tarifaire. Les clients qui utilisent actuellement vm:true bénéficient de la tarification brute de Compute Engine pendant un an. Pour afficher les nouveaux tarifs de l'environnement flexible, consultez la section Costs for flexible environment instances (Tarifs des instances d'environnement flexible).

Les plafonds budgétaires ne sont pas acceptés dans l'environnement flexible. Vous devriez envisager de créer des budgets et définir des alertes.

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

Envoyer des commentaires concernant…

Environnement flexible App Engine pour les documents Ruby