Tester et déployer votre application mise à jour avec Python 3

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

Après avoir mis à jour votre application pour la rendre compatible avec Python 2 et Python 3, procédez comme suit :

  1. Testez l'application dans un environnement Python 3 local.

  2. Déployez et testez l'application dans App Engine sans rediriger le trafic vers votre application.

  3. Redirigez le trafic vers votre application.

La correction des problèmes de compatibilité, qui ne sont pas visibles tant que vous n'aurez pas exécuté l'application mise à jour dans un environnement Python 3, peut demander un certain temps.

Pour éviter d'utiliser les données de production et le quota Google Cloud lors des tests, vous pouvez utiliser les émulateurs suivants :

D'autres services Google Cloud tels que Cloud Storage et Memorystore ne fournissent pas d'émulateurs.

Tester localement

Pour tester les fonctionnalités de l'application avant le déploiement, suivez les instructions pour l'exécuter en local dans l'environnement d'exécution Python 3.

Tester sur App Engine avant de basculer le trafic

Avant de router le trafic vers votre application Python mise à niveau, déployez-la dans l'environnement d'exécution Python 3 d'App Engine pour effectuer une autre série de tests. Par exemple, pour tester le service default de votre application :

  1. Assurez-vous d'avoir effectué la mise à jour des fichiers de configuration de l'application pour assurer sa compatibilité avec l'environnement d'exécution Python 3.

    Ne modifiez pas les variables d'environnement qui envoient des requêtes aux émulateurs et n'effectuez aucun test sur les bases de données tant que vous n'êtes pas prêt à transférer le trafic vers votre application.

  2. Déployez votre nouvelle version, mais empêchez la redirection automatique du trafic vers celle-ci :

    gcloud app deploy --no-promote

  3. Affichez la nouvelle version en accédant à l'URL suivante :

    https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com

Vous pouvez maintenant tester la nouvelle version dans l'environnement d'exécution App Engine. Vous pouvez déboguer l'application en consultant ses journaux. Pour en savoir plus, consultez la page Écrire des journaux d'application.

Les requêtes envoyées à l'adresse https://PROJECT_ID.REGION_ID.r.appspot.com sont acheminées vers la version précédemment configurée pour recevoir le trafic.

Pour tester de nouvelles versions d'autres services, suivez la même procédure, mais remplacez default dans l'URL par le nom de votre service :

https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

Pour en savoir plus sur le ciblage de services et de versions spécifiques, consultez la page Mode de routage des requêtes.

Effectuer la migration du trafic vers votre application

Lorsque vous êtes prêt à envoyer du trafic vers la nouvelle version :

  1. Mettez à jour les variables d'environnement dans votre fichier app.yaml pour envoyer les requêtes à vos bases de données de production et autres services, plutôt qu'aux émulateurs ou aux données de test que vous utilisiez.

  2. Empêchez le trafic d'être automatiquement routé vers votre nouvelle version lors du déploiement :

    gcloud app deploy --no-promote

  3. Une fois que vous avez vérifié que votre application interagit avec vos bases de données et vos datastores de production, utilisez la console Google Cloud pour effectuer la migration du trafic :

    Gérer les versions

    Sélectionnez la dernière version de votre application mise à jour, puis cliquez sur Effectuer la migration du trafic.