Membangun aplikasi Python

Buildpack mendukung konfigurasi bahasa idiomatis melalui variabel lingkungan.

Menetapkan Versi Python

Secara default, buildpack Python Runtime menggunakan penafsir Python versi stabil terbaru. Jika aplikasi memerlukan versi tertentu, Anda dapat menentukannya dengan menyertakan file .python-version dalam direktori root aplikasi.

3.9.9

Menggunakan GOOGLE_PYTHON_VERSION

Anda juga dapat menentukan versi Python melalui variabel lingkungan GOOGLE_PYTHON_VERSION. Jika kedua konfigurasi ditetapkan, nilai GOOGLE_PYTHON_VERSION akan lebih diprioritaskan daripada file .python-version. Secara default, jika file .python-version dan variabel lingkungan GOOGLE_PYTHON_VERSION tidak ditentukan, versi LTS terbaru Python akan digunakan.

Untuk mengonfigurasi buildpack agar menggunakan Python 3.10 saat men-deploy aplikasi Anda:

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

Anda juga dapat menggunakan deskriptor project project.toml untuk mengenkode variabel lingkungan bersama file project Anda. Lihat petunjuk cara membangun aplikasi dengan variabel lingkungan.

Menentukan dependensi dengan pip

Buildpack Python mendukung pengelolaan dependensi aplikasi menggunakan pip. Dependensi aplikasi Anda harus dideklarasikan dalam file requirements.txt direktori utama.

File requirements.txt berisi satu baris per paket. Setiap baris berisi nama paket, dan secara opsional, versi yang diminta. Untuk detail selengkapnya, lihat referensi requirements.txt.

Berikut adalah contoh file requirements.txt:

requests==2.20.0
numpy

Mengonfigurasi pip

Perilaku pip dapat dikonfigurasi menggunakan variabel lingkungan:

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

Dependensi pribadi dari Artifact Registry

Repositori Python Artifact Registry dapat menghosting dependensi pribadi untuk fungsi Python Anda. Saat membangun aplikasi di Cloud Build, buildpack Python akan otomatis membuat kredensial Artifact Registry untuk akun layanan Cloud Build. Anda hanya perlu menyertakan URL Artifact Registry di requirements.txt tanpa membuat kredensial tambahan. Contoh:

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

Titik entri aplikasi

Buildpack Python menggunakan Gunicorn sebagai server HTTP WSGI default untuk workload Anda. Aplikasi yang dibangun dengan buildpack Python memulai proses gunicorn dengan setelan default, mirip dengan menjalankan:

gunicorn --bind :8080 main:app

Menyesuaikan titik entri aplikasi

Anda dapat mengganti setelan default Gunicorn, default titik entri, dan menyesuaikan perintah awal aplikasi menggunakan Procfile atau variabel lingkungan.

Anda dapat membuat Procfile dengan setelan kustom di direktori root. Contoh:

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

Atau, Anda dapat menggunakan variabel lingkungan GOOGLE_ENTRYPOINT dengan perintah pack. Contoh:

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

Variabel Lingkungan

Buildpack Python mendukung variabel lingkungan berikut untuk menyesuaikan container Anda

PIP_<key>

Lihat dokumentasi pip.

Contoh: PIP_DEFAULT_TIMEOUT=60 menetapkan --default-timeout=60 untuk perintah pip.