Mengotomatiskan build sebagai respons terhadap peristiwa Pub/Sub

Pemicu Pub/Sub Cloud Build memungkinkan Anda menjalankan build sebagai respons terhadap peristiwa Google Cloud yang dipublikasikan melalui Pub/Sub. Anda dapat menggunakan informasi dari peristiwa Pub/Sub untuk memparametrisasi build dan memutuskan apakah build harus dijalankan sebagai respons terhadap peristiwa tersebut. Pemicu Pub/Sub dapat dikonfigurasi untuk memproses topik Pub/Sub apa pun.

Halaman ini menjelaskan cara membuat pemicu Pub/Sub untuk mengotomatiskan build sebagai respons terhadap peristiwa di Artifact Registry, Container Registry (Tidak digunakan lagi), dan Cloud Storage.

Batasan

Pemicu Pub/Sub Cloud Build tidak didukung saat Kontrol Layanan VPC digunakan.

Sebelum memulai

  • Enable the Cloud Build API.

    Enable the API

  • Pastikan kode sumber Anda berisi file konfigurasi build atau Dockerfile di repositori.
  • Untuk menggunakan perintah gcloud di halaman ini, instal Google Cloud CLI.

Membuat pemicu build yang merespons peristiwa Artifact Registry

Anda dapat membuat pemicu Pub/Sub yang merespons peristiwa Artifact Registry seperti saat image dikirim, diberi tag, atau dihapus. Bagian ini membahas cara membuat pemicu Pub/Sub yang memanggil build saat tag baru dikirim ke image yang ada. Jika Anda belum terbiasa dengan Artifact Registry, lihat ringkasan Artifact Registry.

Konsol

Untuk membuat pemicu yang memproses tag baru yang didorong ke image yang ada di Artifact Registry menggunakan Konsol Google Cloud:

  1. Buka halaman Pemicu:

    Buka halaman Pemicu

  2. Pilih project Anda dari bagian atas halaman, lalu klik Buka.

  3. Klik Create trigger.

  4. Masukkan setelan pemicu berikut:

    • Nama: Masukkan nama untuk pemicu Anda.
    • Region: Pilih region untuk pemicu Anda.

      • Jika file konfigurasi build yang terkait dengan pemicu menentukan kumpulan pribadi, Cloud Build akan menggunakan kumpulan pribadi untuk menjalankan build Anda. Dalam hal ini, region yang Anda tentukan di pemicu harus cocok dengan region tempat Anda membuat kumpulan pribadi.
      • Jika file konfigurasi build yang terkait dengan pemicu tidak menentukan kumpulan pribadi, Cloud Build akan menggunakan kumpulan default untuk menjalankan build di region yang sama dengan pemicu Anda.
    • Deskripsi (Opsional): Masukkan deskripsi untuk pemicu Anda.

    • Peristiwa: Pilih Pesan Pub/Sub sebagai peristiwa untuk memanggil pemicu Anda.

    • Subscription: Pilih topik Pub/Sub yang ingin Anda langgani sebagai peristiwa pemicu. Anda akan melihat semua topik yang ada di project Anda di menu drop-down.

    • Source: Pilih sumber yang akan di-build saat pemicu Pub/Sub dijalankan. Anda dapat menentukan generasi ke-1 atau generasi ke-2 sebagai sumber.

      • Repositori: Dari daftar repositori yang tersedia, pilih repositori yang diinginkan.

      • Cabang atau Tag: Tentukan ekspresi reguler dengan cabang atau nilai tag yang akan dicocokkan. Untuk mengetahui informasi mengenai sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.

      • Kontrol komentar: Jika Anda memilih Permintaan pull (khusus Aplikasi GitHub) sebagai Peristiwa, pilih salah satu opsi berikut untuk mengontrol apakah build akan otomatis dijalankan oleh pemicu:

        • Wajib kecuali untuk pemilik dan kolaborator: Saat permintaan pull dibuat atau diperbarui oleh pemilik atau kolaborator repositori, build akan otomatis dieksekusi oleh pemicu. Jika kontributor eksternal memulai tindakan, build hanya akan dieksekusi setelah pemilik atau kolaborator mengomentari /gcbrun pada permintaan pull.

        • Wajib: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build hanya akan dieksekusi setelah pemilik atau kollaborator memberikan komentar /gcbrun pada permintaan pull. Build dieksekusi setiap kali perubahan pada permintaan pull dilakukan.

        • Tidak diperlukan: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build akan otomatis dieksekusi oleh pemicu.

    • Konfigurasi: Pilih file konfigurasi build (terletak di repositori jarak jauh Anda) atau buat file konfigurasi build inline untuk digunakan untuk build Anda.

      • Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
        • File konfigurasi Cloud Build (yaml atau json): Gunakan file konfigurasi build untuk konfigurasi Anda.
        • Dockerfile: Gunakan Dockerfile untuk konfigurasi Anda.
        • Buildpack: Gunakan buildpacks untuk konfigurasi Anda.
      • Lokasi: Tentukan lokasi untuk konfigurasi Anda.

        • Repositori: Jika file konfigurasi Anda berada di repositori jarak jauh, berikan lokasi file konfigurasi build, direktori Dockerfile, atau direktori buildpack. Jika jenis konfigurasi build Anda adalah Dockerfile atau buildpack, Anda harus memberikan nama untuk gambar yang dihasilkan dan, secara opsional, waktu tunggu untuk build Anda. Setelah memberikan nama image Dockerfile atau buildpack, Anda akan melihat pratinjau perintah docker build atau pack yang akan dieksekusi build Anda.
        • Variabel lingkungan buildpack (opsional): Jika Anda memilih buildpacks sebagai jenis konfigurasi, klik Tambahkan variabel lingkungan paket untuk menentukan variabel dan nilai lingkungan buildpack Anda. Untuk mempelajari lebih lanjut variabel lingkungan buildpack, lihat Variabel lingkungan.
        • Inline: Jika memilih File konfigurasi Cloud Build (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara langsung. Klik Buka Editor untuk menulis file konfigurasi build di konsol Google Cloud menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.

    • Substitutions (opsional): Jika memilih file konfigurasi build sebagai opsi konfigurasi build, Anda dapat memilih untuk menentukan variabel penggantian khusus pemicu menggunakan kolom ini.

      Dalam contoh berikut, kita ingin mendapatkan nama tag gambar dari payload dan tindakan yang terkait dengan peristiwa gcr. Untuk melakukannya, buat variabel penggantian menggunakan binding payload.

      Tentukan variabel dan nilai berikut di bawah:

      Nama Variabel Nilai Variabel
      _IMAGE_TAG $(body.message.data.tag)
      _ACTION $(body.message.data.action)

      body.message mereferensikan PubSubMessage yang dipublikasikan oleh penayang dan digunakan oleh pelanggan. Untuk melihat contoh payload notifikasi Pub/Sub lainnya, lihat Contoh notifikasi.

    • Filter (opsional): Anda dapat membuat filter dalam pemicu yang menentukan apakah pemicu akan mengeksekusi build sebagai respons terhadap payload yang masuk dengan menentukan filter pada variabel penggantian. Ekspresi filter harus dievaluasi ke true agar build dapat dieksekusi.

      Sebaiknya gunakan pemfilteran saat menyiapkan pemicu Pub/Sub pada topik dengan beberapa pesan. Filter dapat digunakan untuk mengontrol build yang dijalankan sebagai respons terhadap pesan Pub/Sub yang masuk secara akurat. Untuk mempelajari risiko yang terkait dengan penyiapan pemicu tanpa filter, lihat Risiko yang terkait dengan pemicu tanpa filter.

      Pada contoh berikut, kita ingin pemicu menjalankan build jika tag baru dikirim ke image yang ada. Kami menggunakan operator kondisi filter untuk memeriksa apakah variabel _IMAGE_TAG cocok dengan nama tag yang ada dan apakah variabel _ACTION cocok dengan INSERT untuk mencari data yang baru ditambahkan.

      Tentukan hal berikut sebagai filter Anda:

      • _IMAGE_TAG != ""
      • _ACTION == INSERT

      Sintaksis pemfilteran di pemicu Pub/Sub menggunakan Common Expression Language (CEL) untuk evaluasi ekspresi. Untuk mempelajari CEL lebih lanjut, lihat repositori cel-spec.

  1. Klik Create untuk membuat pemicu build.

gcloud

Untuk membuat pemicu yang memproses tag baru yang dikirim ke image yang ada di Artifact Registry menggunakan perintah gcloud:

  1. Buka jendela terminal.
  2. Jalankan perintah gcloud untuk membuat pemicu build di project Anda. Pada contoh di bawah, pemicu dikonfigurasi untuk merespons build dengan tag yang cocok dengan prod dan tindakan yang cocok dengan INSERT berdasarkan payload yang ditentukan seperti yang ditentukan oleh variabel penggantian, _IMAGE_TAG.

     gcloud builds triggers create pubsub \
       --region=REGION \
       --name=TRIGGER_NAME \
       --repository=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME \
       --topic=projects/PROJECT_ID/topics/TOPIC_NAME \
       --build-config=BUILD_CONFIG \ # or --inline-config=INLINE_BUILD_CONFIG
       --substitutions=\
         '_IMAGE_TAG_="$(body.message.data.tag)",' \
         '_ACTION="$(body.message.data.action)"' \
       --subscription-filter='_IMAGE_TAG != "" && _ACTION == "INSERT"' \
       --tag=TAG_NAME  # or --branch=BRANCH_NAME
    

Dengan keterangan:

  • REGION adalah region untuk pemicu Anda.
  • TRIGGER_NAME adalah nama pemicu Anda.
  • PROJECT_ID adalah ID project Cloud Anda.
  • CONNECTION_NAME adalah nama koneksi host Anda.
  • REPO_NAME adalah nama repositori Anda.
  • TOPIC_NAME adalah nama topik Pub/Sub yang telah Anda langgani.
  • BUILD_CONFIG adalah jalur ke file konfigurasi build Anda.
  • INLINE_BUILD_CONFIG adalah jalur ke file konfigurasi build inline Anda.
  • TAG_NAME adalah nama tag jika Anda ingin menetapkan pemicu untuk dibuat berdasarkan tag.
  • BRANCH_NAME adalah nama cabang jika Anda ingin menetapkan pemicu untuk mem-build di cabang.

Membuat pemicu build yang merespons peristiwa Container Registry

Anda dapat membuat pemicu Pub/Sub yang merespons peristiwa Container Registry seperti saat image di-push, diberi tag, atau dihapus. Bagian ini membahas cara membuat pemicu Pub/Sub yang memanggil build saat gambar cocok dengan tag yang disiapkan oleh filter kustom. Jika Anda tidak terbiasa dengan Container Registry, lihat Panduan Memulai untuk Container Registry untuk mempelajari cara mengirim dan mengambil image dengan tag.

Konsol

Untuk membuat pemicu yang memproses pengiriman image di Container Registry dan mencocokkan berdasarkan nama tag menggunakan Konsol Google Cloud:

  1. Buka halaman Pemicu:

    Buka halaman Pemicu

  2. Pilih project Anda dari bagian atas halaman, lalu klik Buka.

  3. Klik Create trigger.

  4. Masukkan setelan pemicu berikut:

    • Nama: Masukkan nama untuk pemicu Anda.
    • Region: Pilih region untuk pemicu Anda.

      • Jika file konfigurasi build yang terkait dengan pemicu menentukan kumpulan pribadi, Cloud Build akan menggunakan kumpulan pribadi untuk menjalankan build Anda. Dalam hal ini, region yang Anda tentukan di pemicu harus cocok dengan region tempat Anda membuat kumpulan pribadi.
      • Jika file konfigurasi build yang terkait dengan pemicu tidak menentukan kumpulan pribadi, Cloud Build akan menggunakan kumpulan default untuk menjalankan build di region yang sama dengan pemicu Anda.
    • Deskripsi (Opsional): Masukkan deskripsi untuk pemicu Anda.

    • Peristiwa: Pilih Pesan Pub/Sub sebagai peristiwa untuk memanggil pemicu Anda.

    • Subscription: Pilih topik Pub/Sub yang ingin Anda langgani sebagai peristiwa pemicu. Anda akan melihat semua topik yang ada di project Anda di menu drop-down.

    • Source: Pilih sumber yang akan di-build saat pemicu Pub/Sub dijalankan. Anda dapat menentukan generasi ke-1 atau generasi ke-2 sebagai sumber.

      • Repositori: Dari daftar repositori yang tersedia, pilih repositori yang diinginkan.

      • Cabang atau Tag: Tentukan ekspresi reguler dengan cabang atau nilai tag yang akan dicocokkan. Untuk mengetahui informasi mengenai sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.

      • Kontrol komentar: Jika Anda memilih Permintaan pull (khusus Aplikasi GitHub) sebagai Peristiwa, pilih salah satu opsi berikut untuk mengontrol apakah build akan otomatis dijalankan oleh pemicu:

        • Wajib kecuali untuk pemilik dan kolaborator: Saat permintaan pull dibuat atau diperbarui oleh pemilik atau kolaborator repositori, build akan otomatis dieksekusi oleh pemicu. Jika kontributor eksternal memulai tindakan, build hanya akan dieksekusi setelah pemilik atau kolaborator mengomentari /gcbrun pada permintaan pull.

        • Wajib: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build hanya akan dieksekusi setelah pemilik atau kollaborator memberikan komentar /gcbrun pada permintaan pull. Build dieksekusi setiap kali perubahan pada permintaan pull dilakukan.

        • Tidak diperlukan: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build akan otomatis dieksekusi oleh pemicu.

    • Konfigurasi: Pilih file konfigurasi build (terletak di repositori jarak jauh Anda) atau buat file konfigurasi build inline untuk digunakan untuk build Anda.

      • Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
        • File konfigurasi Cloud Build (yaml atau json): Gunakan file konfigurasi build untuk konfigurasi Anda.
        • Dockerfile: Gunakan Dockerfile untuk konfigurasi Anda.
        • Buildpack: Gunakan buildpacks untuk konfigurasi Anda.
      • Lokasi: Tentukan lokasi untuk konfigurasi Anda.

        • Repositori: Jika file konfigurasi Anda berada di repositori jarak jauh, berikan lokasi file konfigurasi build, direktori Dockerfile, atau direktori buildpack. Jika jenis konfigurasi build Anda adalah Dockerfile atau buildpack, Anda harus memberikan nama untuk gambar yang dihasilkan dan, secara opsional, waktu tunggu untuk build Anda. Setelah memberikan nama image Dockerfile atau buildpack, Anda akan melihat pratinjau perintah docker build atau pack yang akan dieksekusi build Anda.
        • Variabel lingkungan buildpack (opsional): Jika Anda memilih buildpacks sebagai jenis konfigurasi, klik Tambahkan variabel lingkungan paket untuk menentukan variabel dan nilai lingkungan buildpack Anda. Untuk mempelajari lebih lanjut variabel lingkungan buildpack, lihat Variabel lingkungan.
        • Inline: Jika memilih File konfigurasi Cloud Build (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara langsung. Klik Buka Editor untuk menulis file konfigurasi build di konsol Google Cloud menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.

    • Substitutions (opsional): Jika memilih file konfigurasi build sebagai opsi konfigurasi build, Anda dapat memilih untuk menentukan variabel penggantian khusus pemicu menggunakan kolom ini.

      Dalam contoh berikut, kita ingin mendapatkan nama tag gambar dari payload dan tindakan yang terkait dengan peristiwa gcr. Untuk melakukannya, buat variabel penggantian menggunakan binding payload.

      Tentukan variabel dan nilai berikut di bawah:

      Nama Variabel Nilai Variabel
      _IMAGE_TAG $(body.message.data.tag)
      _ACTION $(body.message.data.action)

      body.message mereferensikan PubSubMessage yang dipublikasikan oleh penayang dan digunakan oleh pelanggan. Untuk melihat contoh payload notifikasi Pub/Sub lainnya, lihat Contoh notifikasi.

    • Filter (opsional): Anda dapat membuat filter dalam pemicu yang menentukan apakah pemicu akan mengeksekusi build sebagai respons terhadap payload yang masuk dengan menentukan filter pada variabel penggantian. Ekspresi filter harus dievaluasi ke true agar build dapat dieksekusi.

      Sebaiknya gunakan pemfilteran saat menyiapkan pemicu Pub/Sub pada topik dengan beberapa pesan. Filter dapat digunakan untuk mengontrol build yang dijalankan sebagai respons terhadap pesan Pub/Sub yang masuk secara akurat. Untuk mempelajari risiko yang terkait dengan penyiapan pemicu tanpa filter, lihat Risiko yang terkait dengan pemicu tanpa filter.

      Dalam contoh berikut, kita ingin pemicu mengeksekusi build jika nama variabel tag _IMAGE_TAG cocok dengan nama tag tertentu, seperti prod. Anda dapat menentukan operator kondisi filter sebagai "==" untuk pencocokan persis. Anda juga dapat memeriksa tindakan yang terkait dengan peristiwa gcr. Misalnya, Anda dapat menentukan _ACTION adalah INSERT untuk mencari data yang baru ditambahkan.

      Tentukan hal berikut sebagai filter Anda:

      • _IMAGE_TAG.matches(prod)
      • _ACTION.matches(INSERT)

      Sintaksis pemfilteran di pemicu Pub/Sub menggunakan Common Expression Language (CEL) untuk evaluasi ekspresi. Untuk mempelajari CEL lebih lanjut, lihat repositori cel-spec. Untuk melihat contoh sintaksis lainnya untuk pemfilteran yang dapat Anda terapkan ke pemicu Pub/Sub, lihat Memfilter build.

  1. Klik Create untuk membuat pemicu build.

gcloud

Membuat pemicu build yang merespons peristiwa Cloud Storage

Anda dapat membuat pemicu Pub/Sub yang merespons peristiwa Cloud Storage, seperti saat biner baru dikirim ke bucket penyimpanan yang ada. Bagian ini membahas cara membuat pemicu Pub/Sub yang merespons dengan build saat men-deploy biner baru ke bucket yang diupload. Jika Anda tidak terbiasa dengan Cloud Storage, lihat Panduan memulai.

Konsol

Untuk membuat pemicu yang memproses peristiwa Cloud Storage menggunakan konsol Google Cloud:

  1. Buka halaman Pemicu:

    Buka halaman Pemicu

  2. Pilih project Anda dari bagian atas halaman, lalu klik Buka.

  3. Klik Create trigger.

  4. Masukkan setelan pemicu berikut:

    • Nama: Masukkan nama untuk pemicu Anda.
    • Region: Pilih region untuk pemicu Anda.

      • Jika file konfigurasi build yang terkait dengan pemicu menentukan kumpulan pribadi, Cloud Build akan menggunakan kumpulan pribadi untuk menjalankan build Anda. Dalam hal ini, region yang Anda tentukan di pemicu harus cocok dengan region tempat Anda membuat kumpulan pribadi.
      • Jika file konfigurasi build yang terkait dengan pemicu tidak menentukan kumpulan pribadi, Cloud Build akan menggunakan kumpulan default untuk menjalankan build di region yang sama dengan pemicu Anda.
    • Deskripsi (Opsional): Masukkan deskripsi untuk pemicu Anda.

    • Peristiwa: Pilih Pesan Pub/Sub sebagai peristiwa untuk memanggil pemicu Anda.

    • Subscription: Pilih topik Pub/Sub yang ingin Anda langgani sebagai peristiwa pemicu. Anda akan melihat semua topik yang ada di project Anda di menu drop-down.

    • Source: Pilih sumber yang akan di-build saat pemicu Pub/Sub dijalankan. Anda dapat menentukan generasi ke-1 atau generasi ke-2 sebagai sumber.

      • Repositori: Dari daftar repositori yang tersedia, pilih repositori yang diinginkan.

      • Cabang atau Tag: Tentukan ekspresi reguler dengan cabang atau nilai tag yang akan dicocokkan. Untuk mengetahui informasi mengenai sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.

      • Kontrol komentar: Jika Anda memilih Permintaan pull (khusus Aplikasi GitHub) sebagai Peristiwa, pilih salah satu opsi berikut untuk mengontrol apakah build akan otomatis dijalankan oleh pemicu:

        • Wajib kecuali untuk pemilik dan kolaborator: Saat permintaan pull dibuat atau diperbarui oleh pemilik atau kolaborator repositori, build akan otomatis dieksekusi oleh pemicu. Jika kontributor eksternal memulai tindakan, build hanya akan dieksekusi setelah pemilik atau kolaborator mengomentari /gcbrun pada permintaan pull.

        • Wajib: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build hanya akan dieksekusi setelah pemilik atau kollaborator memberikan komentar /gcbrun pada permintaan pull. Build dieksekusi setiap kali perubahan pada permintaan pull dilakukan.

        • Tidak diperlukan: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build akan otomatis dieksekusi oleh pemicu.

    • Konfigurasi: Pilih file konfigurasi build (terletak di repositori jarak jauh Anda) atau buat file konfigurasi build inline untuk digunakan untuk build Anda.

      • Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
        • File konfigurasi Cloud Build (yaml atau json): Gunakan file konfigurasi build untuk konfigurasi Anda.
        • Dockerfile: Gunakan Dockerfile untuk konfigurasi Anda.
        • Buildpack: Gunakan buildpacks untuk konfigurasi Anda.
      • Lokasi: Tentukan lokasi untuk konfigurasi Anda.

        • Repositori: Jika file konfigurasi Anda berada di repositori jarak jauh, berikan lokasi file konfigurasi build, direktori Dockerfile, atau direktori buildpack. Jika jenis konfigurasi build Anda adalah Dockerfile atau buildpack, Anda harus memberikan nama untuk gambar yang dihasilkan dan, secara opsional, waktu tunggu untuk build Anda. Setelah memberikan nama image Dockerfile atau buildpack, Anda akan melihat pratinjau perintah docker build atau pack yang akan dieksekusi build Anda.
        • Variabel lingkungan buildpack (opsional): Jika Anda memilih buildpacks sebagai jenis konfigurasi, klik Tambahkan variabel lingkungan paket untuk menentukan variabel dan nilai lingkungan buildpack Anda. Untuk mempelajari lebih lanjut variabel lingkungan buildpack, lihat Variabel lingkungan.
        • Inline: Jika memilih File konfigurasi Cloud Build (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara langsung. Klik Buka Editor untuk menulis file konfigurasi build di konsol Google Cloud menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.

    • Substitutions (opsional): Jika memilih file konfigurasi build sebagai opsi konfigurasi build, Anda dapat memilih untuk menentukan variabel penggantian khusus pemicu menggunakan kolom ini.

      Dalam contoh ini, kita ingin memantau deployment biner baru saat diupload ke bucket. Untuk mendapatkan data ini, kita dapat membuat variabel penggantian menggunakan binding payload.

      Tentukan variabel dan nilai berikut di bawah:

      Nama Variabel Nilai Variabel
      _EVENT_TYPE $(body.message.attributes.eventType)
      _BUCKET_ID $(body.message.attributes.bucketId)
      _OBJECT_ID $(body.message.attributes.objectId)

      body.message mereferensikan PubSubMessage yang dipublikasikan oleh penayang dan digunakan oleh pelanggan. Untuk melihat contoh payload notifikasi Pub/Sub lainnya, lihat Contoh notifikasi.

    • Filter (opsional): Anda dapat membuat filter dalam pemicu yang menentukan apakah pemicu akan mengeksekusi build sebagai respons terhadap payload yang masuk dengan menentukan filter pada variabel penggantian. Ekspresi filter harus dievaluasi ke true agar build dapat dieksekusi.

      Sebaiknya gunakan pemfilteran saat menyiapkan pemicu Pub/Sub pada topik dengan beberapa pesan. Filter dapat digunakan untuk mengontrol build yang dijalankan sebagai respons terhadap pesan Pub/Sub yang masuk secara akurat. Untuk mempelajari risiko yang terkait dengan penyiapan pemicu tanpa filter, lihat Risiko yang terkait dengan pemicu tanpa filter.

      Karena kita ingin pemicu mengeksekusi build jika biner baru telah di-deploy ke bucket tertentu, kita dapat menggunakan operator "==" untuk memeriksa kecocokan persis. Anda juga dapat menggunakan kata kunci "matches" jika ingin mencocokkan berdasarkan ekspresi reguler.

      Tentukan hal berikut sebagai filter Anda:

      • _EVENT_TYPE == OBJECT_FINALIZE
      • _OBJECT_ID cocok dengan ^<object-id>$
      • _BUCKET_ID cocok dengan ^<bucket-id>$
  1. Klik Create untuk membuat pemicu build
  2. .

gcloud

Risiko yang terkait dengan pemicu yang tidak difilter

Jika Anda belum mengonfigurasi filter pada pemicu Pub/Sub, pemicu tersebut mungkin akan memanggil build dalam jumlah tak terbatas jika pemicu mengubah artefak atau objek yang secara tidak sengaja memublikasikan pesan baru ke topik yang didengarkannya. Misalnya, pemicu Anda dapat memanggil build dalam jumlah tak terbatas jika pemicu Anda:

  • Menunjuk ke topik gcr.
  • Membuat gambar atau tag apa pun di gcr.
  • Menunjuk ke topik gcs untuk objek tertentu di bucket Anda dan mengubah objek tersebut.

Jika mengalami loop tanpa akhir, Anda dapat menghapus pemicu atau memperbaruinya agar mengarah ke topik terpisah untuk menghindari tagihan tambahan untuk setiap build yang Anda panggil.

Langkah selanjutnya