Creazione di un'applicazione Python

I buildpack supportano la configurazione idiomatica tramite le variabili di ambiente.

Specificare la versione di Python

Per impostazione predefinita, il buildpack del runtime di Python utilizza la versione stabile più recente dell'interprete Python. Se la tua applicazione richiede una versione specifica, puoi specificarne una includendo un file .python-version nella directory principale dell'applicazione.

3.9.9

Uso: GOOGLE_PYTHON_VERSION

È anche possibile specificare la versione di Python tramite la variabile di ambiente GOOGLE_PYTHON_VERSION. Se sono impostate entrambe le configurazioni, il valore GOOGLE_PYTHON_VERSION ha la precedenza sul file .python-version. Per impostazione predefinita, se non vengono specificati sia il file .python-version sia la variabile di ambiente GOOGLE_PYTHON_VERSION, viene utilizzata la versione LTS più recente di Python.

Per configurare il buildpack in modo che utilizzi Python 3.10 durante il deployment dell'app:

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

Puoi anche utilizzare un descrittore del progetto project.toml per codificare la variabile di ambiente insieme ai file del progetto. Consulta le istruzioni sulla creazione dell'applicazione con le variabili di ambiente.

Specifica delle dipendenze con pip

Il buildpack Python supporta la gestione delle dipendenze dell'applicazione tramite pip. Le dipendenze dell'applicazione devono essere dichiarate in un file requirements.txt nella directory principale.

Il file requirements.txt contiene una riga per pacchetto. Ogni riga contiene il nome del pacchetto e, facoltativamente, la versione richiesta. Per ulteriori dettagli, consulta il riferimento requirements.txt.

Di seguito è riportato un esempio di file requirements.txt:

requests==2.20.0
numpy

Configurazione di pip

È possibile configurare il comportamento di pip utilizzando le variabili di ambiente:

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

Dipendenze private da Artifact Registry

Un repository Python di Artifact Registry può ospitare dipendenze private per la tua funzione Python. Quando crei un'applicazione su Cloud Build, il buildpack Python genera automaticamente le credenziali di Artifact Registry per l'account di servizio Cloud Build. Devi solo includere l'URL di Artifact Registry in requirements.txt senza generare credenziali aggiuntive. Ad esempio:

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

Punto di ingresso dell'applicazione

Il buildpack Python utilizza Gunicorn come server HTTP WSGI predefinito per il tuo carico di lavoro. Le app create con il buildpack Python avviano il processo gunicorn con le impostazioni predefinite, come per l'esecuzione di:

gunicorn --bind :8080 main:app

Personalizzazione del punto di ingresso dell'applicazione

Puoi sostituire i valori predefiniti di Gunicorn, i valori predefiniti del punto di contatto e personalizzare il comando di avvio dell'applicazione utilizzando un Procfile o una variabile di ambiente.

Puoi creare un file Procfile con le tue impostazioni personalizzate nella directory principale. Esempio:

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

In alternativa, puoi utilizzare la variabile di ambiente GOOGLE_ENTRYPOINT con il comando pack. Esempio:

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

Variabili di ambiente

Il buildpack Python supporta le seguenti variabili di ambiente per personalizzare il contenitore

PIP_<key>

Consulta la documentazione di pip.

Esempio: PIP_DEFAULT_TIMEOUT=60 imposta --default-timeout=60 per i comandi pip.