Halaman ini menjelaskan cara mengonfigurasi Cloud Build untuk mem-build, menguji, membuat container, dan men-deploy aplikasi Python.
Cloud Build memungkinkan Anda menggunakan image container yang tersedia secara publik untuk menjalankan tugas pengembangan, termasuk mem-build, menguji, membuat container, mengupload ke Artifact Registry, men-deploy, dan menyimpan log build. Image
python publik dari Docker Hub
sudah diinstal sebelumnya dengan python dan pip alat. Anda dapat mengonfigurasi Cloud Build untuk menggunakan alat ini guna menginstal dependensi, mem-build, dan menjalankan pengujian unit menggunakan alat ini.
Sebelum memulai
Petunjuk di halaman ini mengasumsikan bahwa Anda sudah memahami Python. Selain itu:
-
Aktifkan Cloud Build, Cloud Run, Cloud Storage, dan Artifact Registry API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran. - Untuk menjalankan perintah
gclouddi halaman ini, instal Google Cloud CLI. - Siapkan project Python Anda, termasuk file
requirements.txt. Anda memerlukanDockerfilebersama dengan kode sumber. - Jika ingin menyimpan container yang di-build di Artifact Registry, buat repositori Docker di Artifact Registry.
- Jika ingin menyimpan log pengujian di Cloud Storage, buat bucket di Cloud Storage.
Izin IAM yang diperlukan
Untuk menyimpan log pengujian di Logging, berikan peran Pembuat Objek Penyimpanan (
roles/storage.objectCreator) untuk bucket Cloud Storage ke akun layanan build Anda.Untuk menyimpan image yang di-build di Artifact Registry, berikan peran Penulis Artifact Registry (
roles/artifactregistry.writer) role ke akun layanan build Anda.
Untuk mengetahui petunjuk tentang cara memberikan peran ini, lihat Memberikan peran menggunakan halaman IAM.
Mengonfigurasi build Python
Bagian ini membahas contoh file konfigurasi build untuk aplikasi Python. File ini memiliki langkah-langkah build untuk menginstal persyaratan, menambahkan pengujian unit, dan setelah pengujian lulus, mem-build, dan men-deploy aplikasi.
Di direktori utama project Anda, buat file konfigurasi Cloud Build bernama
cloudbuild.yaml.Menginstal persyaratan: Image
pythondari Docker Hub sudah diinstal sebelumnya denganpip. Untuk menginstal dependensi daripip, tambahkan langkah build dengan kolom berikut:name: Tetapkan nilai kolom ini kepythonuntuk menggunakan image python dari Docker Hub untuk tugas ini.entrypoint: Menetapkan kolom ini akan mengganti titik entri default image yang direferensikan diname. Tetapkan nilai kolom ini kepipuntuk memanggilpipsebagai titik entri langkah build dan menjalankan perintahpip.args: Kolomargsdari langkah build mengambil daftar argumen dan meneruskannya ke image yang direferensikan oleh kolomname. Teruskan argumen untuk menjalankan perintahpip installdi kolom ini. Flag--userdalam perintahpip installmemastikan bahwa langkah-langkah build berikutnya dapat mengakses modul yang diinstal dalam langkah build ini.
Langkah build berikut menambahkan argumen untuk menginstal persyaratan dari file
requirements.txt:Menambahkan pengujian unit: Jika telah menentukan pengujian unit di aplikasi menggunakan framework pengujian seperti
pytest, Anda dapat mengonfigurasi Cloud Build untuk menjalankan pengujian dengan menambahkan kolom berikut dalam langkah build:name: Tetapkan nilai kolom ini kepythonuntuk menggunakan image python dari Docker Hub untuk tugas Anda.entrypoint: Tetapkan nilai kolom ini kepythonuntuk menjalankan perintahpython.args: Tambahkan argumen untuk menjalankan perintahpython pytest.
Langkah build berikut menyimpan output log
pytestke file JUNIT XML. Nama file ini dibuat menggunakan versi singkat ID commit yang terkait dengan build Anda. Langkah build berikutnya akan menyimpan log dalam file ini ke Cloud Storage.Membuat container aplikasi: Setelah menambahkan langkah build untuk memastikan pengujian telah lulus, Anda dapat mem-build aplikasi. Cloud Build menyediakan image Docker yang telah di-build sebelumnya yang dapat Anda gunakan untuk membuat container aplikasi Python. Untuk membuat container aplikasi, tambahkan kolom berikut dalam langkah build:
name: Tetapkan nilai kolom ini kegcr.io/cloud-builders/dockeruntuk menggunakan image docker yang telah di-build sebelumnya untuk tugas Anda.args: Tambahkan argumen untuk perintahdocker buildsebagai nilai untuk kolom ini.
Langkah build berikut mem-build image
myimagedan menandainya dengan versi singkat ID commit Anda. Langkah build menggunakan penggantian default untuk ID project, nama repositori, dan nilai SHA singkat sehingga nilai ini otomatis diganti pada waktu build.Mengirim container ke Artifact Registry: Anda dapat menyimpan container yang di-build di Artifact Registry, yang merupakan Google Cloud layanan yang dapat Anda gunakan untuk menyimpan, mengelola, dan mengamankan artefak build. Untuk melakukannya, Anda harus memiliki repositori Docker yang ada di Artifact Registry. Untuk mengonfigurasi Cloud Build agar menyimpan image di repositori Docker Artifact Registry, tambahkan langkah build dengan kolom berikut:
name: Tetapkan nilai kolom ini kegcr.io/cloud-builders/dockeruntuk menggunakan image builderdockerresmi untuk tugas Anda.args: Tambahkan argumen untuk perintahdocker pushsebagai nilai kolom ini. Untuk URL tujuan, masukkan repositori Docker Artifact Registry tempat Anda ingin menyimpan image.
Langkah build berikut mengirim image yang Anda buat pada langkah sebelumnya ke Artifact Registry:
Opsional: Jika Anda ingin Cloud Build membuat informasi asal build Supply-chain Levels for Software Artifacts (SLSA), selesaikan langkah-langkah berikut:
- Gunakan kolom
imagesdi langkah build, bukan menggunakan langkah buildDocker pushterpisah. - Tambahkan
requestedVerifyOption: VERIFIEDke bagianoptionsfile konfigurasi build Anda.
Men-deploy container ke Cloud Run: Untuk men-deploy image di Cloud Run, tambahkan langkah build dengan kolom berikut:
name: Tetapkan nilai kolom ini kegoogle/cloud-sdkuntuk menggunakan image gcloud CLI guna memanggil perintahgclouduntuk men-deploy image di Cloud Run.args: Tambahkan argumen untuk perintahgcloud run deploysebagai nilai kolom ini.
Langkah build berikut men-deploy image yang di-build sebelumnya ke Cloud Run:
Menyimpan log pengujian ke Cloud Storage: Anda dapat mengonfigurasi Cloud Build untuk menyimpan log pengujian apa pun di Cloud Storage dengan menentukan lokasi bucket dan jalur yang ada ke log pengujian. Langkah build berikut menyimpan log pengujian yang Anda simpan dalam file JUNIT XML ke bucket Cloud Storage:
Cuplikan berikut menunjukkan file konfigurasi build lengkap untuk semua langkah yang dijelaskan di atas:
Mulai build: secara manual atau menggunakan pemicu build.
Setelah build selesai, Anda dapat melihat detail repositori di Artifact Registry.
Anda juga dapat melihat metadata asal build dan memvalidasi asal.
Langkah berikutnya
- Pelajari cara melihat hasil build.
- Pelajari cara mengamankan build.
- Pelajari cara mem-build aplikasi Python mandiri.
- Pelajari cara menggunakan dependensi pribadi.
- Pelajari cara memecahkan masalah error build.