Halaman ini menjelaskan caradeploy layanan baru dan revisi
baru ke Cloud Run langsung dari
kode sumber menggunakan satu perintah gcloud CLI, gcloud run deploy
dengan
--source
tanda Untuk contoh panduan men-deploy layanan Hello World, lihat Men-deploy dari panduan memulai sumber.
Di balik layar, perintah ini menggunakan
Google Cloud buildpack
dan Cloud Build untuk mem-build
image container secara otomatis dari kode sumber Anda tanpa harus menginstal Docker di
komputer atau menyiapkan buildpack atau Cloud Build.
Itu adalah, perintah tunggal
yang dijelaskan di atas melakukan apa yang sebaliknya memerlukan
gcloud builds submit
dan
gcloud run deploy
perintah.
Perlu diperhatikan bahwa deployment sumber menggunakan Artifact Registry untuk
menyimpan container yang dibangun. Jika project Anda belum memiliki repositori Artifact Registry
dengan namacloud-run-source-deploy
di region yang Anda
deploy-kan, fitur ini otomatis membuat repositori Artifact Registry
dengan namacloud-run-source-deploy
.
Jika Dockerfile ada dalam direktori kode sumber, kode sumber yang diupload dibuat menggunakan Dockerfile tersebut. Jika tidak ada Dockerfile dalam direktori kode sumber, buildpack Google Cloud akan otomatis mendeteksi bahasa yang Anda gunakan dan mengambil dependensi kode untuk membuat image container yang siap produksi menggunakan basis yang aman yang dikelola oleh Google. (Setiap kali Anda Anda melakukan deployment, perbaikan keamanan yang diperlukan akan otomatis diambil dari image dasar.)
Bahasa yang didukung
Selain sumber dengan Dockerfile, men-deploy dari sumber juga mendukung bahasa berikut:
- Go
- Node.js
- Python
- Java
- Kotlin
- .NET
- Ruby
- PHP
Baca detail selengkapnya tentang versi bahasa yang didukung oleh buildpack Google Cloud.
Keterbatasan fitur ini
- Men-deploy dari sumber menggunakan Artifact Registry, sehingga fitur ini hanya tersedia di region yang didukung oleh Artifact Registry.
- Men-deploy dari sumber menggunakan
gcloud run deploy --source
adalah fitur yang praktis, dan tidak memungkinkan penyesuaian build secara penuh. Untuk kontrol lebih besar, bangun image container menggunakan Cloud Build, misalnya, menggunakangcloud builds submit
, lalu men-deploy image container menggunakan, misalnya,gcloud run deploy --image
singkat ini. - Men-deploy dari sumber dengan buildpack Google Cloud menetapkan Tanggal Terakhir Diubah
file sumber ke 1 Januari 1980. Ini adalah perilaku default buildpack
dan dirancang untuk mendukung
build yang dapat direproduksi. Bergantung pada
framework bahasa Anda, hal ini dapat memengaruhi caching file statis di sisi browser. JIka
aplikasi Anda terpengaruh oleh hal ini, Google merekomendasikan untuk menonaktifkan header HTTP
etag
danLast-Modified
di aplikasi Anda. - Men-deploy dari sumber dengan buildpack Google Cloud selalu menggunakan
gcr.io/buildpacks/builder:latest
. Jika bahasa atau konfigurasi OS pilihan Anda tidak tersedia dilatest
, gunakan builder khusus untuk membuat image aplikasi menggunakan builder pilihan Anda.
Sebelum memulai
- Pastikan Anda telah menyiapkan project baru untuk Cloud Run seperti yang dijelaskan di halaman setup.
Jika Anda dikenai kebijakan organisasi pembatasan domain yang membatasi pemanggilan yang tidak diautentikasi untuk project, Anda perlu mengakses layanan yang di-deploy seperti yang dijelaskan di bagian Menguji layanan pribadi.
Izin yang diperlukan untuk men-deploy
Untuk men-deploy dari sumber, Anda memerlukan izin untuk mem-build, menyimpan image yang telah di-build, dan men-deploy-nya.
Anda harus memiliki salah satu dari hal berikut:
- PeranPemilik
- PeranEditor
Kumpulan peran berikut ini:
- Peran Cloud Build Editor
- Peran Admin Artifact Registry
- Peran Admin Penyimpanan
- Peran Admin Cloud Run
- Peran Pengguna Akun Layanan
Men-deploy
Untuk men-deploy dari kode sumber:
Mengubah ke direktori sumber. Perlu diperhatikan bahwa direktori sumber tidak memerlukan Dockerfile, tetapi jika ada, Dockerfile akan digunakan.
Bangun dan deploy aplikasi Anda:
gcloud run deploy SERVICE --source .
Ganti
SERVICE
dengan nama yang Anda inginkan untuk layanan Anda.Merespon setiap permintaan untuk menginstal API yang diperlukan dengan merespons
y
ketika diminta. Anda hanya perlu melakukan ini sekali untuk sebuah project. Merespons permintaan lainnya dengan menyediakan platform dan region, jika Anda belum menetapkan setelan default untuk permintaan tersebut seperti yang dijelaskan di halaman setup.Tunggu hingga build dan deploy selesai. Setelah selesai, pesan yang mirip dengan pesan ini ditampilkan:
Service [my-app] revision [my-app-00000-xxx] has been deployed and is serving 100 percent of traffic. Service URL: https://my-app-texampleq-uc.a.run.app
Setelah deployment, perhatikan bahwa revisi layanan ini melayani 100% traffic.
Mengotomatiskan proses membangun dari sumber
Sebagai praktik terbaik untuk menghindari perubahan tanpa versi di sumber lokal, Google menyarankan agar Anda men-deploy secara otomatis saat perubahan dikirim ke repositori Git Anda. Untuk mempermudah, Anda dapat menghubungkan dan mengkonfigurasi deployment berkelanjutan ke layanan Cloud Run Anda. Dengan menghubungkan repositori GitHub Anda ke Cloud Run, Anda dapat mengonfigurasi build dan men-deploy repositori Anda tanpa perlu menulis Dockerfile atau file build.
Untuk mengkonfigurasi build otomatis, siapkan otomatisasi seperti yang dijelaskan di halaman continuous build, pastikan Anda memilih opsi untuk mem-build sumber dengan Buildpacks.
Langkah selanjutnya
Setelah men-deploy layanan baru, Anda dapat melakukan hal berikut:
- Peluncuran bertahap, revisi rollback, migrasi traffic
- Melihat log layanan
- Memantau performa layanan
- Menetapkan batas memori
- Menetapkan variabel lingkungan
- Mengubah keserentakan layanan
- Mengelola layanan
- Mengelola revisi layanan
Anda dapat mengotomatiskan build dan deployment layanan Cloud Run menggunakan Pemicu Cloud Build.