Python-Anwendung erstellen

Buildpacks unterstützen die sprachspezifische Konfiguration über Umgebungsvariablen.

Python-Version angeben

Standardmäßig verwendet das Python-Laufzeit-Buildpack die aktuellste stabile Version des Python-Interpreters. Wenn Ihre Anwendung eine bestimmte Version erfordert, können Sie eine angeben. Dazu schließen Sie eine .python-version-Datei in das Stammverzeichnis Ihrer Anwendung ein.

3.9.9

GOOGLE_PYTHON_VERSION verwenden

Es ist auch möglich, die Python-Version über die Umgebungsvariable GOOGLE_PYTHON_VERSION anzugeben. Wenn beide Konfigurationen festgelegt sind, hat der GOOGLE_PYTHON_VERSION-Wert Vorrang vor der .python-version-Datei. Sind sowohl die .python-version-Datei als auch die Umgebungsvariable GOOGLE_PYTHON_VERSION nicht angegeben, wird standardmäßig die neueste LTS-Version von Python verwendet.

So konfigurieren Sie bei der Bereitstellung Ihrer Anwendung ein Buildpack zur Verwendung von Python 3.10:

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

Sie können auch den project.toml-Projektdeskriptor verwenden, um die Umgebungsvariable zusammen mit den Projektdateien zu codieren. Eine Anleitung zum Erstellen der Anwendung mit Umgebungsvariablen

Abhängigkeiten mit pip angeben

Das Python-Buildpack unterstützt die Verwaltung von Anwendungsabhängigkeiten mithilfe von pip. Ihre Anwendungsabhängigkeiten sollten in einer requirements.txt-Datei im Stammverzeichnis deklariert werden.

Die Datei requirements.txt enthält eine Zeile pro Paket. Jede Zeile enthält den Paketnamen und optional die angeforderte Version. Weitere Informationen finden Sie in der Referenz zu requirements.txt.

Hier sehen Sie eine requirements.txt-Beispieldatei:

requests==2.20.0
numpy

PIP konfigurieren

Es ist möglich, das Verhalten von PIP über Umgebungsvariablen zu konfigurieren:

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

Private Abhängigkeiten von Artifact Registry

Ein Artifact Registry-Python-Repository kann private Abhängigkeiten für Ihre Python-Funktion hosten. Beim Erstellen einer Anwendung in Cloud Build generiert das Python-Buildpack automatisch Artifact Registry-Anmeldedaten für das Cloud Build-Dienstkonto. Sie müssen nur die Artifact Registry-URL in requirements.txt aufnehmen, ohne zusätzliche Anmeldedaten zu generieren. Beispiele:

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

Anwendungseinstiegspunkt

Das Python-Buildpack verwendet Gunicorn als Standard-WSGI-HTTP-Server für Ihre Arbeitslast. Anwendungen, die mit dem Python-Buildpack erstellt wurden, starten den gunicorn-Prozess mit Standardeinstellungen, ähnlich wie beim Ausführen:

gunicorn --bind :8080 main:app

Anwendungseinstiegspunkt anpassen

Sie können die Standardwerte von Gunicorn und die Standardwerte des Einstiegspunkts überschreiben und den Startbefehl Ihrer Anwendung mithilfe einer Procfile oder einer Umgebungsvariable anpassen.

Sie können eine Procfile mit Ihren benutzerdefinierten Einstellungen im Stammverzeichnis erstellen. Beispiel:

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

Alternativ können Sie die Umgebungsvariable GOOGLE_ENTRYPOINT mit dem Befehl pack verwenden. Beispiel:

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

Umgebungsvariablen

Das Python-Buildpack unterstützt folgende Umgebungsvariablen, um Ihren Container anzupassen

PIP_<key>

Weitere Informationen finden Sie in der PIP-Dokumentation.

Beispiel: PIP_DEFAULT_TIMEOUT=60 legt --default-timeout=60 für pip-Befehle fest.