Créer une application Python

Les packs de création acceptent la configuration idiomatique du langage via des variables d'environnement.

Spécifier la version de Python

Par défaut, le buildpack d'exécution Python utilise la dernière version stable de l'interpréteur Python. Si votre application nécessite une version spécifique, vous pouvez en spécifier une en incluant un fichier .python-version dans le répertoire racine de l'application.

3.9.9

Utiliser GOOGLE_PYTHON_VERSION

Il est également possible de spécifier la version de Python via la variable d'environnement GOOGLE_PYTHON_VERSION. Si les deux configurations sont définies, la valeur GOOGLE_PYTHON_VERSION est prioritaire sur le fichier .python-version. Par défaut, lorsque le fichier .python-version et la variable d'environnement GOOGLE_PYTHON_VERSION ne sont pas spécifiés, la dernière version LTS de Python est utilisée.

Pour configurer le buildpack afin d'utiliser Python 3.10 lors du déploiement de votre application, procédez comme suit:

pack build sample-python --builder=gcr.io/buildpacks/builder \
  --env GOOGLE_PYTHON_VERSION="3.10.x"

Vous pouvez également utiliser un descripteur de projet project.toml pour encoder la variable d'environnement avec vos fichiers de projet. Consultez les instructions de la section Créer l'application avec des variables d'environnement.

Spécifier des dépendances avec pip

Le buildpack Python permet de gérer les dépendances d'application à l'aide de pip. Les dépendances de votre application doivent être déclarées dans un fichier requirements.txt du répertoire racine.

Le fichier requirements.txt contient une ligne par package. Chaque ligne contient le nom du package et, éventuellement, la version demandée. Pour en savoir plus, consultez la documentation de référence sur requirements.txt.

Voici un exemple de fichier requirements.txt :

requests==2.20.0
numpy

Configurer pip

Il est possible de configurer le comportement de pip à l'aide de variables d'environnement :

pack build sample-python --builder=gcr.io/buildpacks/builder \
  --env PIP_DEFAULT_TIMEOUT='60'

Dépendances privées d'Artifact Registry

Un dépôt Python Artifact Registry peut héberger des dépendances privées pour votre fonction Python. Lors de la création d'une application sur Cloud Build, le buildpack Python génère automatiquement des identifiants Artifact Registry pour le compte de service Cloud Build. Il vous suffit d'inclure l'URL Artifact Registry dans votre fichier requirements.txt sans générer d'identifiants supplémentaires. Exemple :

--extra-index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage

Point d'entrée de l'application

Le buildpack Python utilise Gunicorn comme serveur HTTP WSGI par défaut pour votre charge de travail. Les applications créées avec le buildpack Python lancent le processus gunicorn avec des paramètres par défaut, semblables à ceux de l'exécution:

gunicorn --bind :8080 main:app

Personnaliser le point d'entrée de l'application

Vous pouvez remplacer les valeurs par défaut de Gunicorn et les valeurs par défaut de entrypoint et personnaliser la commande de démarrage de votre application à l'aide d'une variable d'environnement Procfile ou d'une variable d'environnement.

Vous pouvez créer un fichier Procfile avec vos paramètres personnalisés dans le répertoire racine. Exemple :

web: gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app

Vous pouvez également utiliser la variable d'environnement GOOGLE_ENTRYPOINT avec la commande pack. Exemple :

pack build sample-python \
  --builder gcr.io/buildpacks/builder
  --env "GOOGLE_ENTRYPOINT='gunicorn --bind :$PORT main:app'"

Variables d'environnement

Le buildpack Python accepte les variables d'environnement suivantes pour personnaliser votre conteneur

PIP_<key>

Consultez la documentation PIP.

Exemple: PIP_DEFAULT_TIMEOUT=60 définit --default-timeout=60 pour les commandes pip.