Ringkasan proses build
Saat Anda men-deploy kode sumber fungsi ke fungsi Cloud Run, sumber tersebut disimpan di bucket Cloud Storage. Cloud Build kemudian secara otomatis membangun kode Anda ke dalam image container dan mengirim image tersebut ke image registry terlebih dahulu. Fungsi Cloud Run mengakses image ini kapan perlu menjalankan container untuk menjalankan fungsi Anda.
Proses pembangunan image ini sepenuhnya otomatis dan tidak memerlukan input langsung dari Anda. Semua resource yang digunakan dalam proses build dieksekusi dalam project pengguna Anda sendiri.
Mengeksekusi proses build dalam project Anda berarti:
Anda memiliki akses langsung ke semua log build.
Tidak ada kuota waktu build preset, meskipun Cloud Build memiliki kuota konkurensi default-nya sendiri.
Anda dapat melihat image container saat ini dan image container yang sebelumnya di-deploy image container, yang keduanya disimpan di Artifact Registry.
Cloud Storage digunakan langsung di project Anda, dan direktori kode sumber untuk fungsi Anda disimpan di bucket dalam project. Catatan hal berikut:
- Jika Anda menggunakan enkripsi default, bucket ini akan diberi nama
gcf-sources-PROJECT_NUMBER-REGION
. - Jika Anda melindungi data dengan CMEK,
bucket diberi nama
gcf-sources-PROJECT_NUMBER-REGION-CMEK_KEY_HASH
. - Bucket tidak memiliki periode retensi data.
- Jika Anda menggunakan enkripsi default, bucket ini akan diberi nama
Karakteristik proses build
Proses build memiliki karakteristik berikut:
Cloud Build API harus diaktifkan untuk project Anda.
Untuk mengaktifkan API secara manual, klik link di atas, pilih project Anda dari menu dropdown, lalu ikuti prompt untuk mengaktifkan UI.
Karena seluruh proses build berlangsung dalam konteks project Anda, project tersebut dikenai biaya resource yang disertakan:
Untuk mengetahui harga Cloud Build, lihat halaman Harga. Proses ini menggunakan ukuran instance default Cloud Build, karena instance ini sudah siap dan tersedia lebih cepat. Cloud Build memberikan paket gratis: tinjau dokumen harga untuk informasi lebih lanjut spesifikasi pendukung.
Untuk mengetahui harga Cloud Storage, lihat halaman Harga. Cloud Storage menyediakan paket gratis: tinjau dokumen harga untuk mengetahui detail lebih lanjut.
Untuk mengetahui harga Artifact Registry, lihat halaman Harga.
Untuk harga Container Registry (tidak digunakan lagi), lihat Halaman Harga.
Karena proses build tunduk pada penagihan, project Anda harus memiliki Akun Penagihan Cloud yang terkait.
Melihat log image build
Manfaat utama memiliki proses image build di project pengguna Anda adalah akses ke log build. Anda dapat menggunakan gcloud CLI atau Konsol Google Cloud untuk mengakses log, yang tersedia melalui Cloud Logging.
gcloud
Deploy fungsi Anda menggunakan perintah
gcloud functions deploy
.URL log ditampilkan sebagai bagian dari respons di jendela terminal Anda. Contoh:
Deploying function (may take a while - up to 2 minutes)...⠹ **For Cloud Build Stackdriver Logs**, visit: https://console.cloud.google.com/logs/viewer?project=
&advancedFilter=resource.type% 3Dbuild%0Aresource.labels.build_id%3D38d5b662-2315-45dd-8aa2- 380d50d4f5e8%0AlogName%3Dprojects%2F % 2Flogs%2Fcloudbuild Deploying function (may take a while - up to 2 minutes)...done.
Konsol Google Cloud
- Dari jendela Cloud Run functions Overview klik nama fungsi yang Anda selidiki.
- Klik tab Detail.
- Di panel General Information, klik link Container build log untuk membuka panel Logs explorer.
- Klik baris mana pun untuk melihat detail entri log build tersebut. Jika hal ini adalah entri error yang terkait dengan file, detail tersebut mencakup nama, baris, dan kolom file.
Registry image
Fungsi Cloud Run menggunakan Artifact Registry untuk menyimpan
image yang dibangun dari kode sumber fungsi Anda. Gambar disimpan dalam repositori bernama REGION-docker.pkg.dev/PROJECT_ID/gcf-artifacts
.
Artifact Registry harus berada dalam project yang sama dengan fungsi Anda. Anda dapat membuat atau mengupdate fungsi berbasis Artifact Registry sebagai berikut:
gcloud
Untuk Artifact Registry yang dikelola pelanggan, jalankan perintah berikut:
gcloud functions deploy --no-gen2 FUNCTION \ --docker-repository=REPOSITORY [FLAGS...]
Ganti kode berikut:
- FUNCTION: Nama fungsi.
- REPOSITORY: Nama repositori Artifact Registry yang sepenuhnya memenuhi syarat, dalam format berikut:
projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY
.
Untuk Artifact Registry yang dikelola Google, gunakan:
gcloud functions deploy --no-gen2 FUNCTION \ --docker-registry=artifact-registry [FLAGS...]
Konsol Google Cloud
Buka halaman fungsi Cloud Run di Konsol Google Cloud:
Buka halaman Cloud Run FunctionsKlik nama fungsi tempat Anda ingin menggunakan Artifact Registry.
Klik Edit.
Klik Runtime, build... untuk meluaskan opsi konfigurasi lanjutan.
Klik Security and Image Repo dari panel menu untuk membuka tab keamanan.
Di bagian Image repository, pilih salah satu opsi berikut, bergantung pada jenis Artifact Registry yang Anda gunakan:
- Artifact Registry yang dikelola pelanggan. Gunakan opsi ini jika Anda menyiapkan repositori Docker sendiri.
- Artifact Registry yang dikelola Google. Gunakan opsi ini jika Anda ingin menggunakan repositori Docker yang dikelola Google, bukan menyiapkannya sendiri.
Untuk Artifact Registry yang dikelola pelanggan, gunakan menu drop-down Artifact Registry untuk memilih repositori Artifact Registry yang Anda inginkan, atau ikuti prompt-nya dan buat yang baru.
Klik Next.
Klik Deploy.
Untuk mengetahui informasi harga selengkapnya, lihat Harga Cloud Run Functions.
Mengamankan build dengan pool pribadi
Agar fungsi Anda dapat menggunakan dependensi (misalnya, paket npm), Cloud Build secara default memiliki akses internet tak terbatas selama proses build. Jika Anda telah menyiapkan perimeter Kontrol Layanan VPC (SC VPC) dan ingin membatasi akses build hanya ke dependensi yang disimpan di dalam perimeter, Anda dapat menggunakan fitur pool worker pribadi Cloud Build.
Secara umum, ikuti langkah-langkah berikut untuk menyiapkan pool pribadi:
- Membuat pool worker pribadi. Lihat Membuat dan mengelola pool pribadi.
Konfigurasi perimeter Kontrol Layanan VPC Anda. Baca Menggunakan Kontrol Layanan VPC.
Jika kumpulan pekerja pribadi Anda berada dalam project yang berbeda dengan fungsi Anda, Anda harus memberikan Service Agent ke fungsi Cloud Run Akun Layanan (
service-FUNCTION_PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com
) perancloudbuild.workerPoolUser
sehingga Cloud Build dapat mengakses kumpulan pekerja.gcloud projects add-iam-policy-binding PRIVATE_POOL_PROJECT_ID \ --member serviceAccount:service-FUNCTION_PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com --role roles/cloudbuild.workerPoolUser
dengan FUNCTION_PROJECT_NUMBER adalah nomor project tempat fungsi berjalan dan PRIVATE_POOL_PROJECT_ID adalah id project tempat pool worker berada. Lihat Menjalankan build di pool pribadi untuk mengetahui informasi selengkapnya.
Deploy fungsi Anda untuk membangun penggunaan pool pribadi:
gcloud
gcloud functions deploy FUNCTION_NAME --no-gen2\ --runtime RUNTIME \ --build-worker-pool PRIVATE_POOL_NAME [FLAGS...]
dengan FUNCTION_NAME sebagai nama fungsi, RUNTIME adalah runtime yang Anda gunakan, dan PRIVATE_POOL_NAME adalah nama pool Anda.
Untuk berhenti menggunakan pool pribadi tertentu dan alih-alih menggunakan pool Cloud Build default, gunakan flag --clear-build-worker-pool
saat melakukan deployment ulang.
gcloud functions deploy FUNCTION_NAME --no-gen2 \ --runtime RUNTIME \ --clear-build-worker-pool [FLAGS...]
dengan FUNCTION_NAME sebagai nama fungsi dan RUNTIME adalah runtime yang Anda gunakan.
Konsol Google Cloud
Dari halaman Cloud Run functions overview, pilih Buat fungsi.
Di bagian Runtime, build..., klik tab Build, lalu masukkan nama lengkap resource pool pribadi Anda di kotak teks Build worker pools.
Untuk mengetahui informasi selengkapnya, lihat Menjalankan build di pool pribadi.