Men-deploy dari kode sumber

Halaman ini menjelaskan caramen-deploy 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 Panduan memulai men-deploy dari 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. Artinya, perintah tunggal yang dijelaskan di atas melakukan apa yang sebaliknya memerlukan perintah gcloud builds submit dan gcloud run deploy.

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.

Secara default, perbaikan keamanan hanya diterapkan saat layanan di-deploy. Saat Anda mengaktifkan update keamanan otomatis untuk layanan, layanan tersebut akan otomatis menerima patch tanpa downtime. Pelajari lebih lanjut cara mengonfigurasi update keamanan.

Bahasa yang didukung

Selain sumber dengan Dockerfile, men-deploy dari sumber juga mendukung bahasa berikut:

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, menggunakan gcloud 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 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 layanan dari sumber menggunakan Kotlin dan bahasa JVM lainnya seperti Java Bahasa yang Anda gunakan harus mematuhi aturan berikut:

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

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.

Peran yang diperlukan

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

Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika layanan 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.

Memberikan peran Akun Layanan Cloud Build ke akun layanan default Compute Engine

  1. Aktifkan Cloud Run Admin API dan Cloud Build API:

    gcloud services enable run.googleapis.com \
        cloudbuild.googleapis.com

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

  2. Agar Cloud Build dapat mem-build sumber Anda, berikan peran Cloud Build Service Account ke akun layanan default Compute Engine dengan menjalankan perintah berikut:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:PROJECT_NUMBER-compute@ \
        --role=roles/cloudbuild.builds.builder

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

    Pemberian peran Akun Layanan Cloud Build ke akun layanan default Compute Engine memerlukan waktu beberapa menit untuk disebarkan.

Men-deploy

Untuk men-deploy dari kode sumber:

  1. Mengubah ke direktori sumber. Perlu diperhatikan bahwa direktori sumber tidak memerlukan Dockerfile, tetapi jika ada, Dockerfile akan digunakan.

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

  3. 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 berikutnya

Setelah men-deploy layanan baru, Anda dapat melakukan hal berikut:

Anda dapat mengotomatiskan build dan deployment layanan Cloud Run menggunakan Pemicu Cloud Build.