Men-deploy gabungan worker dari kode sumber

Halaman ini menjelaskan cara men-deploy kumpulan pekerja atau revisi kumpulan pekerja baru ke Cloud Run langsung dari kode sumber menggunakan satu perintah gcloud CLI, gcloud beta run worker-pools deploy dengan tanda --source.

Di balik layar, perintah ini menggunakan buildpack Google Cloud 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. Secara default, Cloud Run menggunakan jenis mesin default yang disediakan oleh Cloud Build. Menjalankan gcloud beta run worker-pools deploy menghilangkan kebutuhan untuk menjalankan perintah gcloud builds submit.

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.

Sebelum memulai

  • Pastikan Anda telah menyiapkan project baru untuk Cloud Run seperti yang dijelaskan di halaman setup.
  • Aktifkan Cloud Run Admin API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    Mengaktifkan API

    Setelah Cloud Run Admin API diaktifkan, akun layanan default Compute Engine akan dibuat secara otomatis.

Peran yang diperlukan

Untuk men-deploy dari sumber, Anda atau administrator Anda harus memberikan peran IAM berikut ke akun deployer.

Klik untuk melihat peran yang diperlukan untuk akun deployer

Untuk mendapatkan izin yang Anda perlukan untuk membangun dan men-deploy dari sumber, minta administrator untuk memberi Anda peran IAM berikut:

Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika kumpulan worker Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.

Bahasa yang didukung

Selain sumber dengan Dockerfile, men-deploy dari sumber juga mendukung bahasa berikut menggunakan buildpack Google Cloud:

  • Go
  • Node.js
  • Python
  • Java
  • Kotlin
  • Groovy
  • Scala
  • .NET
  • Ruby
  • PHP

Baca detail selengkapnya tentang versi bahasa yang didukung.

Men-deploy dari sumber dengan build

Bagian ini menjelaskan cara menggunakan buildpack Google Cloud 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.

Batasan

  • Men-deploy dari sumber menggunakan Artifact Registry dan Cloud Build, sehingga fitur ini hanya tersedia di region yang didukung oleh Artifact Registry dan Cloud Build.
  • Men-deploy dari sumber adalah fitur yang praktis, dan tidak memungkinkan penyesuaian build secara penuh. Untuk kontrol lebih besar, bangun image container menggunakan Cloud Build, misalnya, menggunakan gcloud builds submit, lalu deploy image container menggunakan, misalnya, gcloud beta run worker-pools deploy --image.
  • 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 dan Last-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 di latest, gunakan builder khusus untuk membuat image aplikasi menggunakan builder pilihan Anda.
  • Anda dapat men-deploy kumpulan pekerja dari sumber menggunakan Kotlin dan bahasa JVM lainnya seperti Java. Bahasa yang Anda gunakan harus sesuai dengan aturan berikut:

    • Anda dapat mem-build aplikasi menggunakan Maven atau Gradle.
    • File build berisi semua plugin yang diperlukan untuk menghasilkan class.

Sebelum Anda men-deploy dengan build

Sebelum Anda men-deploy dari sumber dengan build:

  • Ikuti langkah-langkah di Sebelum memulai.

  • Aktifkan Cloud Build API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    Mengaktifkan API

Peran yang diperlukan

Untuk men-deploy dari sumber dengan build, Anda atau administrator Anda harus memberikan peran IAM berikut kepada akun layanan Cloud Build.

Klik untuk melihat peran yang diperlukan untuk akun layanan Cloud Build

Cloud Build secara otomatis menggunakan akun layanan default Compute Engine sebagai akun layanan Cloud Build default untuk membangun kode sumber dan resource Cloud Run Anda, kecuali jika Anda mengganti perilaku ini. Agar Cloud Build dapat membangun sumber Anda, minta administrator Anda untuk memberikan peran Cloud Run Builder (roles/run.builder) ke akun layanan default Compute Engine di project Anda:

  gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/run.builder
  

Ganti PROJECT_NUMBER dengan nomor project Google Cloud Anda, dan PROJECT_ID dengan ID project Google Cloud Anda. Untuk mengetahui petunjuk mendetail tentang cara menemukan project ID dan nomor project Anda, lihat Membuat dan mengelola project.

Pemberian peran builder Cloud Run ke akun layanan default Compute Engine memerlukan waktu beberapa menit untuk berlaku.

Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika kumpulan worker Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.

Men-deploy dengan build

Untuk men-deploy dari kode sumber:

  1. Di konsol Google Cloud , aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.

  2. Mengubah ke direktori sumber. Direktori sumber menggunakan Dockerfile jika ada, meskipun tidak diperlukan.

  3. Bangun dan deploy kumpulan pekerja Anda:

    gcloud beta run worker-pools deploy WORKERPOOL --source .
    Ganti WORKERPOOL dengan nama yang Anda inginkan untuk kumpulan worker Anda.

  4. 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 penyiapan.

  5. Tunggu hingga proses build dan deploy selesai. Setelah selesai, Cloud Run akan menampilkan pesan berhasil.

Mengotomatisasi 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 mengonfigurasi deployment berkelanjutan ke kumpulan pekerja 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.

Langkah berikutnya

Setelah men-deploy pool worker Cloud Run, Anda dapat melakukan hal berikut: