Men-deploy ke Cloud Run menggunakan Cloud Build

Halaman ini menjelaskan cara men-deploy layanan Cloud Run secara otomatis menggunakan Cloud Build. Jika Anda baru menggunakan Cloud Build, baca panduan memulai cepat dan ringkasan konfigurasi build terlebih dahulu.

Cloud Run memungkinkan Anda menjalankan image stateless di lingkungan serverless. Dengan Cloud Build, Anda dapat men-deploy image dari Artifact Registry ke Cloud Run. Anda dapat men-deploy image yang ada, membuat dan men-deploy image, atau mengotomatiskan deployment.

Sebelum memulai

  • Enable the Cloud Build, Cloud Run, Artifact Registry, and Resource Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Izin Identity and Access Management yang diperlukan

  1. Di konsol Google Cloud , buka halaman Cloud Build Permissions:

    Buka Izin

  2. Untuk akun layanan Cloud Build yang ditentukan atau akun layanan Cloud Build default, tetapkan status peran berikut ke Diaktifkan:

    • Admin Cloud Run (roles/run.admin) | Mengizinkan Cloud Build men-deploy layanan baru ke Cloud Run.
    • Admin Penyimpanan (roles/storage.admin) | Memungkinkan membaca dan menulis dari Cloud Storage.
    • Penulis Artifact Registry (roles/artifactregistry.writer) | Mengizinkan penarikan image dari dan penulisan ke Artifact Registry.
    • Penulis Log (roles/logging.logWriter) | Mengizinkan entri log ditulis ke Cloud Logging.
    • Cloud Build Editor (roles/cloudbuild.builds.editor) | Mengizinkan akun layanan Anda menjalankan build.

Membangun dan men-deploy image

Cloud Build memungkinkan Anda mem-build image, menyimpan image yang di-build di Artifact Registry, lalu men-deploy image ke Cloud Run.

Untuk membuat dan men-deploy image:

  1. Di direktori root project Anda, buat file konfigurasi bernama cloudbuild.yaml.

  2. Dalam file konfigurasi build, tambahkan langkah-langkah build docker untuk mem-build image dan mengirimkannya ke Artifact Registry, lalu tambahkan langkah build gcloud untuk memanggil perintah gcloud run deploy guna men-deploy image di Cloud Run:

    steps:
    # Build the image
    - name: 'gcr.io/cloud-builders/docker'
      args: ['build', '-t', 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE', '.']
    # Push the image to Artifact Registry
    - name: 'gcr.io/cloud-builders/docker'
      args: ['push', 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE']
    # Deploy image to Cloud Run
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      entrypoint: gcloud
      args: ['run', 'deploy', 'SERVICE_NAME', '--image', 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE', '--region', 'SERVICE_REGION']
    images:
    - 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE'
    

    Dengan:

    • REPOSITORY adalah nama repositori Artifact Registry tempat Anda men-deploy image.
    • LOCATION adalah lokasi repositori Artifact Registry Anda, seperti us-east1.
    • PROJECT_ID adalah project ID Google Cloud tempat image Anda disimpan.
    • SERVICE_NAME adalah nama layanan Cloud Run.
    • SERVICE_REGION adalah region layanan Cloud Run yang Anda deploy.
    • IMAGE adalah nama image Anda di Artifact Registry.
  3. Buka direktori root project Anda dan jalankan perintah berikut, dengan LOCATION adalah salah satu region build yang didukung untuk menjalankan build:

     gcloud builds submit --region=LOCATION
    

Setelah berhasil diselesaikan, pesan berhasil akan ditampilkan beserta URL layanan yang di-deploy.

Deployment berkelanjutan

Anda dapat mengotomatiskan deployment software ke Cloud Run dengan membuat pemicu Cloud Build. Anda dapat mengonfigurasi pemicu untuk mem-build dan men-deploy image setiap kali Anda memperbarui kode sumber.

Untuk mengotomatiskan deployment Anda:

  1. Di root repositori, tambahkan file konfigurasi bernama cloudbuild.yaml dengan langkah-langkah untuk membangun image, mengirim image ke Artifact Registry, lalu memanggil perintah gcloud run deploy:

    steps:
    # Build the image
    - name: 'gcr.io/cloud-builders/docker'
      args: ['build', '-t', 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE/SERVICE_NAME:$COMMIT_SHA', '.']
    # Push the image to Artifact Registry
    - name: 'gcr.io/cloud-builders/docker'
      args: ['push', 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE/SERVICE_NAME:$COMMIT_SHA']
    # Deploy image to Cloud Run
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      entrypoint: gcloud
      args: 
        - 'run'
        - 'deploy'
        - 'SERVICE_NAME'
        - '--image'
        - 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE/SERVICE_NAME:$COMMIT_SHA'
        - '--region'
        - 'SERVICE_REGION'
    images:
    - 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE/SERVICE_NAME:$COMMIT_SHA'
    

    Dengan:

    • REPOSITORY adalah nama repositori Artifact Registry tempat Anda men-deploy image.
    • LOCATION adalah lokasi repositori Artifact Registry Anda, seperti us-east1.
    • PROJECT_ID adalah project ID Google Cloud tempat image Anda disimpan.
    • SERVICE_NAME adalah nama layanan Cloud Run.
    • SERVICE_REGION adalah region layanan Cloud Run yang Anda deploy.
    • IMAGE adalah nama image Anda di Artifact Registry.

    Variabel substitusi $COMMIT_SHA diisi oleh Cloud Build saat dipicu dari repositori Git.

  2. Buat pemicu build dengan file konfigurasi yang dibuat pada langkah sebelumnya:

    1. Buka halaman Pemicu:

      Buka halaman Pemicu

    2. Klik Create Trigger.

    3. Di kolom Nama, masukkan nama pemicu Anda.

    4. Di bagian Region, pilih region untuk pemicu Anda.

    5. Di bagian Peristiwa, pilih peristiwa repositori untuk memulai pemicu Anda.

    6. Di bagian Sumber, pilih repositori dan cabang atau nama tag yang akan memulai pemicu Anda. Untuk informasi selengkapnya tentang menentukan cabang yang akan otomatis di-build, lihat Membuat pemicu build.

    7. Di bagian Konfigurasi, pilih File konfigurasi Cloud Build (YAML atau JSON).

    8. Di kolom Lokasi file konfigurasi Cloud Build, ketik cloudbuild.yaml setelah /.

    9. Klik Buat untuk menyimpan pemicu build Anda.

    Sekarang, saat Anda melakukan push kode baru ke repositori, Cloud Build akan memanggil build dan men-deploy layanan ke Cloud Run.

Untuk mengetahui informasi selengkapnya tentang cara membuat pemicu Cloud Build, lihat Membuat dan mengelola pemicu build.

Contoh kode

Berikut beberapa contoh repositori, yang masing-masing berisi contoh aplikasi dan file konfigurasi build untuk men-deploy aplikasi ke Cloud Run:

  • deploy-prebuilt: Contoh kode yang menunjukkan cara men-deploy image yang telah dibuat sebelumnya ke Cloud Run.
  • run-example-builddeploy: Contoh kode yang menunjukkan cara membangun dan men-deploy image ke Cloud Run.

Langkah berikutnya