Dengan pemicu Cloud Build Pub/Sub, Anda dapat menjalankan build sebagai respons terhadap peristiwa Google Cloud yang dipublikasikan melalui Pub/Sub. Anda dapat menggunakan informasi dari peristiwa Pub/Sub untuk membuat parameter 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 (Deprecated), dan Cloud Storage.
Batasan
Pemicu Cloud Build Pub/Sub tidak didukung saat Kontrol Layanan VPC digunakan.
Sebelum memulai
-
Aktifkan API Cloud Build.
- 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 didorong ke image yang ada. Jika Anda belum terbiasa dengan Artifact Registry, lihat ringkasan Artifact Registry.
Konsol
Untuk membuat pemicu yang memproses tag baru yang dikirim ke image yang ada di Artifact Registry menggunakan Konsol Google Cloud:
Buka halaman Pemicu:
Pilih project Anda dari bagian atas halaman, lalu klik Open.
Klik Create trigger.
Masukkan setelan pemicu berikut:
- Nama: Masukkan nama untuk pemicu Anda.
Region: Pilih wilayah 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 dalam 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.
Deskripsi (Opsional): Masukkan deskripsi untuk pemicu Anda.
Event: Pilih Pub/Sub message sebagai peristiwa untuk memanggil pemicu.
Langganan: Pilih topik Pub/Sub yang ingin Anda berlangganan sebagai peristiwa pemicu. Anda akan melihat semua topik yang ada di proyek Anda di menu {i>drop-down<i}.
- Pub/Sub topic: Pilih topik
gcr
dari menu drop-down atau buat topik secara manual menggunakan petunjuk di Mengonfigurasi notifikasi Pub/Sub.
- Pub/Sub topic: Pilih topik
Sumber: Pilih sumber yang akan di-build saat pemicu Pub/Sub berjalan. Anda dapat menentukan generasi ke-1 atau generasi ke-2 sebagai sumber.
Repository: Dari daftar repositori yang tersedia, pilih repositori yang diinginkan.
Branch atau Tag: Tentukan ekspresi reguler dengan nilai cabang atau tag yang akan dicocokkan. Untuk mengetahui informasi mengenai sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.
Kontrol komentar: Jika Anda memilih Pull request (GitHub App only) sebagai Event, 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 repositori atau kolaborator, build akan otomatis dijalankan oleh pemicu. Jika kontributor eksternal memulai tindakan, build hanya akan dijalankan setelah pemilik atau kolaborator mengomentari
/gcbrun
pada permintaan pull.Wajib: Saat permintaan pull dibuat atau diupdate oleh kontributor, build hanya akan dijalankan setelah pemilik atau kolaborator mengomentari
/gcbrun
pada permintaan pull. Build dijalankan setiap kali perubahan pada permintaan pull dibuat.Tidak diperlukan: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build akan otomatis dijalankan oleh pemicu.
Konfigurasi: Pilih file konfigurasi build (terletak di repositori jarak jauh) 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): Menggunakan file konfigurasi build untuk konfigurasi Anda.
- Dockerfile: Gunakan
Dockerfile
untuk konfigurasi Anda. - Buildpacks: Menggunakan buildpacks untuk konfigurasi Anda.
Lokasi: Menentukan lokasi untuk konfigurasi Anda.
- Repositori: Jika file konfigurasi Anda berada di
repositori jarak jauh, berikan lokasi
file konfigurasi build, direktori
Dockerfile
, atau direktori buildpacks. Jika jenis konfigurasi build adalahDockerfile
atau buildpack, Anda harus memberi nama untuk image yang dihasilkan dan, jika perlu, waktu tunggu untuk build. Setelah memberikan nama imageDockerfile
atau buildpack, Anda akan melihat pratinjau perintahdocker build
ataupack
yang akan dijalankan oleh build Anda. - Variabel lingkungan buildpack (opsional): Jika Anda
memilih
buildpacks
sebagai jenis konfigurasi, klik Add pack environment variable untuk menentukan variabel dan nilai lingkungan buildpack Anda. Untuk mempelajari variabel lingkungan buildpack lebih lanjut, lihat Variabel lingkungan. Inline: Jika memilih Cloud Build configuration file (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara inline. Klik Open Editor untuk menulis file konfigurasi build di Google Cloud Console menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.
- Repositori: Jika file konfigurasi Anda berada di
repositori jarak jauh, berikan lokasi
file konfigurasi build, direktori
- Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
Substitutions (opsional): Jika memilih file konfigurasi build sebagai opsi konfigurasi build, Anda dapat memilih untuk menentukan variabel substitusi khusus pemicu menggunakan kolom ini.
Pada contoh berikut, kita ingin mendapatkan nama tag image dari payload dan tindakan yang terkait dengan peristiwa
gcr
. Untuk melakukannya, buat variabel substitusi 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
merujuk pada PubSubMessage yang dipublikasikan oleh penerbit dan digunakan oleh pelanggan. Untuk melihat contoh payload notifikasi Pub/Sub lainnya, lihat Contoh notifikasi.Filters (opsional): Anda dapat membuat filter dalam pemicu yang menentukan apakah pemicu akan mengeksekusi build atau tidak sebagai respons terhadap payload masuk dengan menentukan filter pada variabel substitusi. Ekspresi filter harus bernilai
true
agar build dapat dijalankan.Sebaiknya gunakan pemfilteran saat menyiapkan pemicu Pub/Sub pada topik dengan beberapa pesan. Filter dapat digunakan untuk mengontrol secara akurat build yang dijalankan sebagai respons terhadap pesan Pub/Sub yang masuk. Untuk mempelajari risiko yang terkait dengan penyiapan pemicu tanpa filter, lihat Risiko yang terkait dengan pemicu yang tidak difilter.
Pada contoh berikut, kita ingin pemicu mengeksekusi build jika tag baru didorong ke image yang ada. Kita menggunakan operator kondisi filter untuk memeriksa apakah variabel
_IMAGE_TAG
cocok dengan nama tag yang ada dan apakah variabel_ACTION
cocok denganINSERT
untuk mencari data yang baru ditambahkan.Tentukan hal berikut sebagai filter Anda:
_IMAGE_TAG
!=""
_ACTION
==INSERT
Pemfilteran sintaksis di pemicu Pub/Sub menggunakan Common Expression Language (CEL) untuk evaluasi ekspresi. Untuk mempelajari CEL lebih lanjut, lihat repositori cel-spec.
- 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
:
- Buka jendela terminal.
Jalankan perintah
gcloud
untuk membuat pemicu build di project Anda. Pada contoh di bawah, pemicu dikonfigurasi untuk merespons build dengan tag yang cocok denganprod
dan tindakan yang cocok denganINSERT
berdasarkan payload yang ditentukan seperti yang ditetapkan oleh variabel substitusi,_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 Anda ikuti.
- 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 pada tag.
- BRANCH_NAME adalah nama cabang jika Anda ingin menetapkan pemicu untuk di-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 dikirim, 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 belum 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 push image di Container Registry dan mencocokkan berdasarkan nama tag menggunakan Konsol Google Cloud:
Buka halaman Pemicu:
Pilih project Anda dari bagian atas halaman, lalu klik Open.
Klik Create trigger.
Masukkan setelan pemicu berikut:
- Nama: Masukkan nama untuk pemicu Anda.
Region: Pilih wilayah 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 dalam 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.
Deskripsi (Opsional): Masukkan deskripsi untuk pemicu Anda.
Event: Pilih Pub/Sub message sebagai peristiwa untuk memanggil pemicu.
Langganan: Pilih topik Pub/Sub yang ingin Anda berlangganan sebagai peristiwa pemicu. Anda akan melihat semua topik yang ada di proyek Anda di menu {i>drop-down<i}.
- Pub/Sub topic: Pilih topik
gcr
dari menu drop-down atau buat topik secara manual menggunakan petunjuk di Mengonfigurasi notifikasi Pub/Sub.
- Pub/Sub topic: Pilih topik
Sumber: Pilih sumber yang akan di-build saat pemicu Pub/Sub berjalan. Anda dapat menentukan generasi ke-1 atau generasi ke-2 sebagai sumber.
Repository: Dari daftar repositori yang tersedia, pilih repositori yang diinginkan.
Branch atau Tag: Tentukan ekspresi reguler dengan nilai cabang atau tag yang akan dicocokkan. Untuk mengetahui informasi mengenai sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.
Kontrol komentar: Jika Anda memilih Pull request (GitHub App only) sebagai Event, 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 repositori atau kolaborator, build akan otomatis dijalankan oleh pemicu. Jika kontributor eksternal memulai tindakan, build hanya akan dijalankan setelah pemilik atau kolaborator mengomentari
/gcbrun
pada permintaan pull.Wajib: Saat permintaan pull dibuat atau diupdate oleh kontributor, build hanya akan dijalankan setelah pemilik atau kolaborator mengomentari
/gcbrun
pada permintaan pull. Build dijalankan setiap kali perubahan pada permintaan pull dibuat.Tidak diperlukan: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build akan otomatis dijalankan oleh pemicu.
Konfigurasi: Pilih file konfigurasi build (terletak di repositori jarak jauh) 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): Menggunakan file konfigurasi build untuk konfigurasi Anda.
- Dockerfile: Gunakan
Dockerfile
untuk konfigurasi Anda. - Buildpacks: Menggunakan buildpacks untuk konfigurasi Anda.
Lokasi: Menentukan lokasi untuk konfigurasi Anda.
- Repositori: Jika file konfigurasi Anda berada di
repositori jarak jauh, berikan lokasi
file konfigurasi build, direktori
Dockerfile
, atau direktori buildpacks. Jika jenis konfigurasi build adalahDockerfile
atau buildpack, Anda harus memberi nama untuk image yang dihasilkan dan, jika perlu, waktu tunggu untuk build. Setelah memberikan nama imageDockerfile
atau buildpack, Anda akan melihat pratinjau perintahdocker build
ataupack
yang akan dijalankan oleh build Anda. - Variabel lingkungan buildpack (opsional): Jika Anda
memilih
buildpacks
sebagai jenis konfigurasi, klik Add pack environment variable untuk menentukan variabel dan nilai lingkungan buildpack Anda. Untuk mempelajari variabel lingkungan buildpack lebih lanjut, lihat Variabel lingkungan. Inline: Jika memilih Cloud Build configuration file (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara inline. Klik Open Editor untuk menulis file konfigurasi build di Google Cloud Console menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.
- Repositori: Jika file konfigurasi Anda berada di
repositori jarak jauh, berikan lokasi
file konfigurasi build, direktori
- Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
Substitutions (opsional): Jika memilih file konfigurasi build sebagai opsi konfigurasi build, Anda dapat memilih untuk menentukan variabel substitusi khusus pemicu menggunakan kolom ini.
Pada contoh berikut, kita ingin mendapatkan nama tag image dari payload dan tindakan yang terkait dengan peristiwa
gcr
. Untuk melakukannya, buat variabel substitusi 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
merujuk pada PubSubMessage yang dipublikasikan oleh penerbit dan digunakan oleh pelanggan. Untuk melihat contoh payload notifikasi Pub/Sub lainnya, lihat Contoh notifikasi.Filters (opsional): Anda dapat membuat filter dalam pemicu yang menentukan apakah pemicu akan mengeksekusi build atau tidak sebagai respons terhadap payload masuk dengan menentukan filter pada variabel substitusi. Ekspresi filter harus bernilai
true
agar build dapat dijalankan.Sebaiknya gunakan pemfilteran saat menyiapkan pemicu Pub/Sub pada topik dengan beberapa pesan. Filter dapat digunakan untuk mengontrol secara akurat build yang dijalankan sebagai respons terhadap pesan Pub/Sub yang masuk. Untuk mempelajari risiko yang terkait dengan penyiapan pemicu tanpa filter, lihat Risiko yang terkait dengan pemicu yang tidak difilter.
Pada contoh berikut, kita ingin pemicu menjalankan build jika nama variabel tag
_IMAGE_TAG
cocok dengan nama tag tertentu, sepertiprod
. Anda dapat menentukan operator kondisi filter sebagai "==" untuk pencocokan persis. Anda juga dapat memeriksa tindakan yang terkait dengan peristiwagcr
. Misalnya, Anda mungkin ingin menetapkanINSERT
sebagai_ACTION
untuk mencari data yang baru ditambahkan.Tentukan hal berikut sebagai filter Anda:
_IMAGE_TAG
.cocok(prod
)_ACTION
.cocok(INSERT
)
Pemfilteran sintaksis 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 pemfilteran lainnya yang dapat Anda terapkan ke pemicu Pub/Sub, lihat Memfilter build.
- 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 build saat men-deploy biner baru ke bucket yang diupload. Jika Anda belum terbiasa dengan Cloud Storage, lihat Panduan Memulai.
Konsol
Untuk membuat pemicu yang memproses peristiwa Cloud Storage menggunakan Konsol Google Cloud:
Buka halaman Pemicu:
Pilih project Anda dari bagian atas halaman, lalu klik Open.
Klik Create trigger.
Masukkan setelan pemicu berikut:
- Nama: Masukkan nama untuk pemicu Anda.
Region: Pilih wilayah 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 dalam 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.
Deskripsi (Opsional): Masukkan deskripsi untuk pemicu Anda.
Event: Pilih Pub/Sub message sebagai peristiwa untuk memanggil pemicu.
Langganan: Pilih topik Pub/Sub yang ingin Anda berlangganan sebagai peristiwa pemicu. Anda akan melihat semua topik yang ada di proyek Anda di menu {i>drop-down<i}.
- Pub/Sub topic: Pilih topik
gcs
dari menu drop-down atau buat topik secara manual menggunakan petunjuk di Mengonfigurasi notifikasi Pub/Sub untuk Cloud Storage.
- Pub/Sub topic: Pilih topik
Sumber: Pilih sumber yang akan di-build saat pemicu Pub/Sub berjalan. Anda dapat menentukan generasi ke-1 atau generasi ke-2 sebagai sumber.
Repository: Dari daftar repositori yang tersedia, pilih repositori yang diinginkan.
Branch atau Tag: Tentukan ekspresi reguler dengan nilai cabang atau tag yang akan dicocokkan. Untuk mengetahui informasi mengenai sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.
Kontrol komentar: Jika Anda memilih Pull request (GitHub App only) sebagai Event, 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 repositori atau kolaborator, build akan otomatis dijalankan oleh pemicu. Jika kontributor eksternal memulai tindakan, build hanya akan dijalankan setelah pemilik atau kolaborator mengomentari
/gcbrun
pada permintaan pull.Wajib: Saat permintaan pull dibuat atau diupdate oleh kontributor, build hanya akan dijalankan setelah pemilik atau kolaborator mengomentari
/gcbrun
pada permintaan pull. Build dijalankan setiap kali perubahan pada permintaan pull dibuat.Tidak diperlukan: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build akan otomatis dijalankan oleh pemicu.
Konfigurasi: Pilih file konfigurasi build (terletak di repositori jarak jauh) 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): Menggunakan file konfigurasi build untuk konfigurasi Anda.
- Dockerfile: Gunakan
Dockerfile
untuk konfigurasi Anda. - Buildpacks: Menggunakan buildpacks untuk konfigurasi Anda.
Lokasi: Menentukan lokasi untuk konfigurasi Anda.
- Repositori: Jika file konfigurasi Anda berada di
repositori jarak jauh, berikan lokasi
file konfigurasi build, direktori
Dockerfile
, atau direktori buildpacks. Jika jenis konfigurasi build adalahDockerfile
atau buildpack, Anda harus memberi nama untuk image yang dihasilkan dan, jika perlu, waktu tunggu untuk build. Setelah memberikan nama imageDockerfile
atau buildpack, Anda akan melihat pratinjau perintahdocker build
ataupack
yang akan dijalankan oleh build Anda. - Variabel lingkungan buildpack (opsional): Jika Anda
memilih
buildpacks
sebagai jenis konfigurasi, klik Add pack environment variable untuk menentukan variabel dan nilai lingkungan buildpack Anda. Untuk mempelajari variabel lingkungan buildpack lebih lanjut, lihat Variabel lingkungan. Inline: Jika memilih Cloud Build configuration file (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara inline. Klik Open Editor untuk menulis file konfigurasi build di Google Cloud Console menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.
- Repositori: Jika file konfigurasi Anda berada di
repositori jarak jauh, berikan lokasi
file konfigurasi build, direktori
- Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
Substitutions (opsional): Jika memilih file konfigurasi build sebagai opsi konfigurasi build, Anda dapat memilih untuk menentukan variabel substitusi khusus pemicu menggunakan kolom ini.
Dalam contoh ini, kita ingin mengamati deployment biner baru saat biner diupload ke bucket. Untuk mendapatkan data ini, kita dapat membuat variabel substitusi 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
merujuk pada PubSubMessage yang dipublikasikan oleh penerbit dan digunakan oleh pelanggan. Untuk melihat contoh payload notifikasi Pub/Sub lainnya, lihat Contoh notifikasi.Filters (opsional): Anda dapat membuat filter dalam pemicu yang menentukan apakah pemicu akan mengeksekusi build atau tidak sebagai respons terhadap payload masuk dengan menentukan filter pada variabel substitusi. Ekspresi filter harus bernilai
true
agar build dapat dijalankan.Sebaiknya gunakan pemfilteran saat menyiapkan pemicu Pub/Sub pada topik dengan beberapa pesan. Filter dapat digunakan untuk mengontrol secara akurat build yang dijalankan sebagai respons terhadap pesan Pub/Sub yang masuk. Untuk mempelajari risiko yang terkait dengan penyiapan pemicu tanpa filter, lihat Risiko yang terkait dengan pemicu yang tidak difilter.
Karena kita ingin pemicu mengeksekusi build jika biner baru telah di-deploy ke bucket tertentu, kita dapat menggunakan operator "==" untuk memeriksa kecocokan yang persis. Anda juga dapat menggunakan kata kunci "cocok" jika ingin mencocokkan menurut ekspresi reguler.
Tentukan hal berikut sebagai filter Anda:
_EVENT_TYPE
==OBJECT_FINALIZE
_OBJECT_ID
cocok dengan^<object-id>$
_BUCKET_ID
cocok dengan^<bucket-id>$
- Klik Create untuk membuat pemicu build .
gcloud
Risiko yang terkait dengan pemicu yang tidak difilter
Jika Anda belum mengonfigurasi filter pada pemicu Pub/Sub, pemicu Anda mungkin akan memanggil build yang tidak terbatas jika pemicu Anda mengubah artefak atau objek yang secara tidak sengaja memublikasikan pesan baru ke topik yang didengarkannya. Misalnya, pemicu Anda dapat memanggil build yang jumlahnya tidak terbatas jika pemicu Anda:
- Mengarah ke topik
gcr
. - Membuat gambar atau tag apa pun di
gcr
. - Mengarah ke topik
gcs
untuk objek tertentu di bucket Anda, lalu mengubah objek tersebut.
Jika menemukan loop tanpa batas, Anda dapat menghapus pemicu atau mengupdatenya agar mengarah ke topik terpisah agar tidak menimbulkan biaya tambahan untuk setiap build yang dipanggil.
Langkah selanjutnya
- Pelajari cara memulai build secara manual menggunakan perintah
gcloud
atau Cloud Build API. - Pelajari cara membuat dan mengelola pemicu.
- Pelajari cara melihat hasil build.
- Pelajari cara memecahkan masalah error build.