Pour pouvoir exécuter votre application dans l'environnement d'exécution Python 3 de l'environnement standard App Engine, vous devrez peut-être modifier certains des fichiers de configuration utilisés par App Engine :
app.yaml
: ce fichier contient des informations sur le code de votre application, telles que l'environnement d'exécution et les gestionnaires d'application.appengine_config.py
L'environnement d'exécution Python 2 utilise ce fichier pour accéder aux bibliothèques tierces et fournir des valeurs pour les constantes et les "fonctions de hook". L'environnement d'exécution Python 3 n'utilise pas ce fichier.
Mise à jour de app.yaml
Le comportement de certains champs de votre fichier de configuration app.yaml
a été modifié. Supprimez tous les champs qui ne sont plus compatibles et mettez à jour les autres champs, comme décrit dans le tableau suivant.
Champ | Type de modification | Description |
---|---|---|
app_engine_apis | Applicable à Python 3 uniquement | Doit être défini sur true si vous souhaitez accéder aux anciens services groupés pour Python 3. |
api_version application_readable builtins |
Ne sont plus compatibles. | Non applicables dans l'environnement d'exécution Python 3. |
threadsafe | N'est plus compatible. | Toutes les applications sont supposées être "threadsafe". Si votre application n'est pas threadsafe, spécifiez un entrypoint en configurant un thread par nœud de calcul.Par exemple, lorsque la classe d'instance F4 est utilisée : entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:app Consultez la page Bonnes pratiques relatives à entrypoint pour connaître le nombre de nœuds de calcul recommandé pour chaque classe d'instance. |
bibliothèques | N'est plus compatible. | Utilisez le fichier requirements.txt pour déclarer les dépendances et installer les bibliothèques clientes. |
handlers: login | Compatible si app_engine_apis est true |
Si vous n'utilisez pas les anciens services groupés pour Python 3, utilisez Identity and Access Management (IAM) pour la gestion des utilisateurs. |
handlers: script | Modifié | Dans l'environnement d'exécution Python 2, vous utilisez le champ script pour acheminer les requêtes entrantes vers le script de votre application.Dans l'environnement d'exécution Python 3, vous devez utiliser un framework Web avec routage intégré à l'application (tel que Flask ou Django) au lieu du champ Pour migrer votre fichier
La gestion des fichiers statiques reste inchangée. |
Si vous utilisez l'un des champs obsolètes, App Engine renvoie une erreur lors du déploiement de l'application.
Vous pouvez utiliser les exemples suivants pour comparer les différences entre les fichiers app.yaml
:
Python 2
runtime: python27 api_version: 1 threadsafe: true handlers: - url: / script: home.app - url: /index\.html script: home.app - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.app login: admin - url: /.* script: not_found.app
Python 3
runtime: python312
app_engine_apis: true
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /(.*\.(gif|png|jpg))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg)$
- url: /admin/.*
script: auto
login: admin
Supprimer appengine_config.py
Dans l'environnement standard App Engine, l'environnement d'exécution Python 2 utilise le fichier appengine_config.py
.
Ce fichier est ignoré dans l'environnement d'exécution Python 3. Au lieu de cela, l'environnement d'exécution Python 3 utilise le fichier requirements.txt
standard pour installer les dépendances, y compris les dépendances qui utilisent du code natif.