Mengotomatiskan konfigurasi untuk notifikasi

Anda dapat mengonfigurasi Cloud Build untuk mengirim notifikasi build ke Slack, Google Chat, server SMTP, endpoint HTTP, atau instance BigQuery menggunakan notifikasi Cloud Build. Halaman ini menjelaskan cara mengotomatiskan proses konfigurasi untuk notifikasi yang diinginkan.

Mengotomatiskan konfigurasi notifikasi

Cloud Build menyediakan skrip penyiapan yang dapat Anda gunakan untuk mengotomatiskan konfigurasi notifikasi. Untuk mengonfigurasi pemberitahuan menggunakan skrip penyiapan:

Slack

Menyiapkan

Bagian berikut menjelaskan langkah-langkah yang perlu Anda selesaikan sebelum otomatisasi konfigurasi notifikasi untuk pemberitahuan Anda.

Mengaktifkan API

Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.

Enable the APIs

Mendapatkan dan menyimpan kredensial

  1. Buat aplikasi Slack untuk ruang kerja Slack tempat Anda ingin mengirim notifikasi.

  2. Aktifkan webhook masuk untuk memposting pesan dari Cloud Build ke Slack.

  3. Buka aplikasi Slack untuk menemukan URL webhook yang masuk. URL Anda akan terlihat seperti berikut:

    http://hooks.slack.com/services/...
    
  4. Simpan URL webhook masuk di Secret Manager:

    1. Buka halaman Secret Manager di konsol Google Cloud:

      Buka halaman Secret Manager

    2. Klik Buat secret.

    3. Masukkan nama untuk secret Anda.

    4. Di bagian Nilai rahasia, tambahkan URL webhook masuk untuk aplikasi Slack Anda.

    5. Untuk menyimpan secret, klik Buat secret.

Menulis file konfigurasi pemberitahuan

Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi Slack dan memfilter peristiwa build:

Dalam contoh file konfigurasi notifikasi berikut, kolom filter menggunakan Common Expression Language dengan variabel yang tersedia, build, untuk memfilter peristiwa build dengan status SUCCESS:

  apiVersion: cloud-build-notifiers/v1
  kind: SlackNotifier
  metadata:
    name: example-slack-notifier
  spec:
    notification:
      filter: build.status == Build.Status.SUCCESS
      delivery:
        webhookUrl:
          secretRef: webhook-url
      template:
        type: golang
        uri: gs://example-gcs-bucket/slack.json
    secrets:
    - name: webhook-url
      value: projects/project-id/secrets/secret-name/versions/latest

Dengan keterangan:

  • webhook-url adalah variabel konfigurasi yang digunakan dalam contoh ini untuk mereferensikan jalur URL webhook Slack yang disimpan di Secret Manager. Nama variabel yang Anda tentukan di sini harus cocok dengan kolom name di bagian secrets.
  • project-id adalah ID project Google Cloud Anda.
  • secret-name adalah nama secret yang berisi URL webhook Slack Anda.
  • Kolom uri mereferensikan file slack.json. File ini berisi template JSON yang dihosting di Cloud Storage dan mewakili pesan notifikasi Anda ke ruang Slack.

Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi Slack.

Menjalankan skrip otomatisasi

Untuk mengotomatiskan konfigurasi notifikasi bagi notifikasi Anda:

  1. Buat clone repositori cloud-build-notifiers.

  2. Konfigurasikan Google Cloud CLI dengan project ID dan region Anda:

    gcloud config set project project-id
    gcloud config set run/region region
    

    Dengan keterangan:

    • project-id adalah ID project Google Cloud Anda.
    • region adalah region untuk men-deploy pemberitahuan.
  3. Jalankan perintah berikut di root repositori:

    ./setup.sh slack config-path -t template-path -s secret-name

Dengan keterangan:

  • config-path adalah jalur ke file konfigurasi notifikasi Anda.
  • template-path adalah jalur ke file template notifikasi Anda. File template pemberitahuan Anda berisi template JSON yang dihosting di Cloud Storage dan mewakili pesan notifikasi Anda. Anda dapat menyertakan file template notifikasi sebagai jalur menggunakan variabel ini atau dalam kolom uri file konfigurasi notifikasi.
  • secret-name adalah nama secret Anda yang disimpan di Secret Manager.

Setelah menjalankan skrip, Anda akan melihat pesan berikut:

** NOTIFIER SETUP COMPLETE **

Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di repositori cloud-build-notifiers atau menjalankan ./setup.sh --help untuk mendapatkan petunjuk penggunaan yang terkait dengan skrip.

SMTP

Menyiapkan

Bagian berikut menjelaskan langkah-langkah yang perlu Anda selesaikan sebelum otomatisasi konfigurasi notifikasi untuk pemberitahuan Anda.

Mengaktifkan API

Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.

Enable the APIs

Menyimpan kredensial

  1. Simpan sandi akun email pengirim di Secret Manager:

  2. Buka halaman Secret Manager di konsol Google Cloud:

    Buka halaman Secret Manager

  3. Klik Buat secret.

  4. Masukkan nama untuk secret Anda.

  5. Di bagian Secret value, tambahkan sandi akun email pengirim.

  6. Untuk menyimpan secret, klik Buat secret.

Menulis file konfigurasi pemberitahuan

Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi SMTP dan memfilter peristiwa build:

Dalam contoh file konfigurasi notifikasi berikut, kolom filter menggunakan Common Expression Language dengan variabel yang tersedia, build, untuk memfilter peristiwa build dengan status SUCCESS:

 apiVersion: cloud-build-notifiers/v1
 kind: SMTPNotifier
 metadata:
   name: example-smtp-notifier
 spec:
   notification:
     filter: build.status == Build.Status.SUCCESS
     delivery:
       server: server-host-name
       port: "port"
       sender: sender-email
       from: from-email
       recipients:
         - recipient-email
         # optional: more emails here
       password:
         secretRef: smtp-password
      template:
        type: golang
        uri: gs:example-gcs-bucket/smtp.html
   secrets:
   - name: smtp-password
     value: projects/project-id/secrets/secret-name/versions/latest

Dengan keterangan:

  • server-host-name adalah alamat server SMTP Anda.
  • port adalah port yang akan menangani permintaan SMTP. Nilai ini harus ditentukan sebagai string.
  • sender-email adalah alamat email akun pengirim yang dilihat oleh server-host-name yang ditentukan.
  • from-email adalah alamat email yang dilihat oleh penerima.
  • recipient-email adalah daftar satu atau beberapa alamat email untuk menerima pesan dari pengirim.
  • smtp-password adalah variabel konfigurasi yang digunakan dalam contoh ini untuk mereferensikan sandi akun email pengirim yang disimpan di Secret Manager. Nama variabel yang Anda tentukan di sini harus cocok dengan kolom name di bagian secrets.
  • project-id adalah ID project Google Cloud Anda.
  • secret-name adalah nama secret Anda yang berisi sandi untuk akun email pengirim.
  • Kolom uri mereferensikan file smtp.html. File ini merujuk ke template html yang dihosting di Cloud Storage dan mewakili email notifikasi Anda.

Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi SMTP.

Menjalankan skrip otomatisasi

Untuk mengotomatiskan konfigurasi notifikasi bagi notifikasi Anda:

  1. Buat clone repositori cloud-build-notifiers.

  2. Konfigurasikan Google Cloud CLI dengan project ID dan region Anda:

    gcloud config set project project-id
    gcloud config set run/region region
    

    Dengan keterangan:

    • project-id adalah ID project Google Cloud Anda.
    • region adalah region untuk men-deploy pemberitahuan.
  3. Jalankan perintah berikut di root repositori:

    ./setup.sh smtp config-path -t template-path -s secret-name

Dengan keterangan:

  • config-path adalah jalur ke file konfigurasi notifikasi Anda.
  • template-path adalah jalur ke file template notifikasi Anda. File template pemberitahuan Anda berisi template JSON yang dihosting di Cloud Storage dan mewakili pesan notifikasi Anda. Anda dapat menyertakan file template notifikasi sebagai jalur menggunakan variabel ini atau dalam kolom uri file konfigurasi notifikasi.
  • secret-name adalah nama secret Anda yang disimpan di Secret Manager.

Setelah menjalankan skrip, Anda akan melihat pesan berikut:

** NOTIFIER SETUP COMPLETE **

Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di repositori cloud-build-notifiers atau menjalankan ./setup.sh --help untuk mendapatkan petunjuk penggunaan yang terkait dengan skrip.

BigQuery

Menyiapkan

Bagian berikut menjelaskan langkah-langkah yang perlu Anda selesaikan sebelum otomatisasi konfigurasi notifikasi untuk pemberitahuan Anda.

Mengaktifkan API

Enable the Cloud Build, Cloud Run, Pub/Sub, and BigQuery APIs.

Enable the APIs

Memberikan izin

Berikan izin akun layanan Cloud Run Anda untuk membuat dan menulis tabel BigQuery serta izin untuk mengambil data Artifact Registry yang terkait dengan build Anda:

  1. Buka halaman IAM di konsol Google Cloud:

    Buka halaman IAM

  2. Temukan akun layanan default Compute Engine yang terkait dengan project Anda:

    Akun layanan default Compute Engine Anda akan terlihat mirip dengan berikut, dengan project-number sebagai nomor project Anda:

        project-number-compute@developer.gserviceaccount.com
    
  3. Klik ikon pensil di baris yang berisi akun layanan default Compute Engine Anda.

    Anda akan melihat tab Edit akses.

    1. Klik Add another role.

    2. Tambahkan peran berikut:

      • Pembaca Artifact Registry
      • BigQuery Data Editor

        Peran Artifact Registry Reader memungkinkan Anda mengambil data untuk image. BigQuery Data Editor memberi Anda akses baca dan tulis ke data.

    3. Klik Simpan.

Menulis file konfigurasi pemberitahuan

Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi BigQuery dan memfilter peristiwa build:

Dalam contoh file konfigurasi notifikasi berikut, kolom filter menggunakan Common Expression Language dengan variabel, build, untuk memfilter peristiwa build dengan ID pemicu yang ditentukan:

 apiVersion: cloud-build-notifiers/v1
 kind: BigQueryNotifier
 metadata:
   name: example-bigquery-notifier
 spec:
   notification:
     filter: build.build_trigger_id == "123e4567-e89b-12d3-a456-426614174000"
     delivery:
       table: projects/project-id/datasets/dataset-name/tables/table-name
     template:
       type: golang
       uri: gs://example-gcs-bucket/bq.json

Dengan keterangan:

  • project-id adalah ID project Google Cloud Anda.
  • dataset-name adalah nama yang ingin Anda berikan ke set data.
  • table-name adalah nama yang ingin Anda berikan ke tabel.

table-name dalam file konfigurasi notifikasi Anda dapat merujuk ke:

  • tabel yang tidak ada
  • tabel kosong tanpa skema
  • tabel yang ada dengan skema yang cocok dengan spesifikasi skema di notifikasi BigQuery

  • Kolom uri mereferensikan file bq.json. File ini merujuk ke template JSON yang dihosting di Cloud Storage dan mewakili informasi yang akan disisipkan ke tabel bigquery Anda.

Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi BigQuery.

Menjalankan skrip otomatisasi

Untuk mengotomatiskan konfigurasi notifikasi bagi notifikasi Anda:

  1. Buat clone repositori cloud-build-notifiers.

  2. Konfigurasikan Google Cloud CLI dengan project ID dan region Anda:

    gcloud config set project project-id
    gcloud config set run/region region
    

    Dengan keterangan:

    • project-id adalah ID project Google Cloud Anda.
    • region adalah region untuk men-deploy pemberitahuan.
  3. Jalankan perintah berikut di root repositori:

     ./setup.sh bigquery -t config-path -t template-path
    

    Dengan keterangan:

    • config-path adalah jalur ke file konfigurasi notifikasi Anda.
    • template-path adalah jalur ke file template notifikasi Anda. File template pemberitahuan Anda berisi template JSON yang dihosting di Cloud Storage dan mewakili pesan notifikasi Anda. Anda dapat menyertakan file template notifikasi sebagai jalur menggunakan variabel ini atau dalam kolom uri file konfigurasi notifikasi.

    Setelah menjalankan skrip, Anda akan melihat pesan berikut:

    ** NOTIFIER SETUP COMPLETE **
    

    Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di repositori cloud-build-notifiers atau menjalankan ./setup.sh --help untuk mendapatkan petunjuk penggunaan yang terkait dengan skrip.

HTTP

Menyiapkan

Bagian berikut menjelaskan langkah-langkah yang perlu Anda selesaikan sebelum otomatisasi konfigurasi notifikasi untuk pemberitahuan Anda.

Mengaktifkan API

Enable the Cloud Build, Cloud Run, and Pub/Sub APIs.

Enable the APIs

Menulis file konfigurasi pemberitahuan

Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi HTTP dan memfilter peristiwa build:

Dalam contoh file konfigurasi notifikasi berikut, kolom filter menggunakan Common Expression Language dengan variabel yang tersedia, build, untuk memfilter peristiwa build dengan status SUCCESS:

    apiVersion: cloud-build-notifiers/v1
    kind: HTTPNotifier
    metadata:
      name: example-http-notifier
    spec:
      notification:
        filter: build.status == Build.Status.SUCCESS
        delivery:
          # The `http(s)://` protocol prefix is required.
          url: url
        template:
          type: golang
          uri: gs://example-gcs-bucket/http.json

Dengan keterangan:

  • url adalah variabel konfigurasi yang digunakan dalam contoh ini untuk menentukan URL untuk permintaan Anda.
  • url adalah URL yang ingin Anda tentukan sebagai server penerima.
  • Kolom uri mereferensikan file http.json. File ini merujuk ke template JSON yang dihosting di Cloud Storage dan mewakili payload json ke endpoint webhook.

Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi HTTP.

Menjalankan skrip otomatisasi

Untuk mengotomatiskan konfigurasi notifikasi bagi notifikasi Anda:

  1. Buat clone repositori cloud-build-notifiers.

  2. Konfigurasikan Google Cloud CLI dengan project ID dan region Anda:

    gcloud config set project project-id
    gcloud config set run/region region
    

    Dengan keterangan:

    • project-id adalah ID project Google Cloud Anda.
    • region adalah region untuk men-deploy pemberitahuan.
  3. Jalankan perintah berikut di root repositori:

     ./setup.sh http -t config-path
    

    Dengan keterangan:

    • config-path adalah jalur ke file konfigurasi notifikasi Anda.

Setelah menjalankan skrip, Anda akan melihat pesan berikut:

** NOTIFIER SETUP COMPLETE **

Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di repositori cloud-build-notifiers atau menjalankan ./setup.sh --help untuk mendapatkan petunjuk penggunaan yang terkait dengan skrip.

Google Chat

Menyiapkan

Bagian berikut menjelaskan langkah-langkah yang perlu Anda selesaikan sebelum otomatisasi konfigurasi notifikasi untuk pemberitahuan Anda.

Mengaktifkan API

Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.

Enable the APIs

Mendapatkan dan menyimpan kredensial

  1. Buat ruang di Google Chat.

  2. Dalam ruang yang dibuat, buat webhook masuk untuk memposting pesan dari Cloud Build ke Google Chat. URL Anda akan terlihat seperti berikut:

    https://chat.googleapis.com/v1/spaces/...

  3. Simpan URL webhook masuk di Secret Manager:

    1. Buka halaman Secret Manager di konsol Google Cloud:

      Buka halaman Secret Manager

    2. Klik Buat secret.

    3. Masukkan nama untuk secret Anda.

    4. Di bagian Secret value, tambahkan URL webhook masuk untuk ruang Google Chat Anda.

    5. Untuk menyimpan secret, klik Buat secret.

Menulis file konfigurasi pemberitahuan

Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi Google Chat dan memfilter peristiwa build:

Dalam contoh file konfigurasi notifikasi berikut, kolom filter menggunakan Common Expression Language dengan variabel yang tersedia, build, untuk memfilter peristiwa build dengan status SUCCESS:

  apiVersion: cloud-build-notifiers/v1
  kind: GoogleChatNotifier
  metadata:
    name: example-googlechat-notifier
  spec:
    notification:
      filter: build.status == Build.Status.SUCCESS
      delivery:
        webhookUrl:
          secretRef: webhook-url
    secrets:
    - name: webhook-url
      value: projects/project-id/secrets/secret-name/versions/latest

Dengan keterangan:

  • webhook-url adalah variabel konfigurasi yang digunakan dalam contoh ini untuk mereferensikan jalur URL webhook Google Chat yang disimpan di Secret Manager. Nama variabel yang Anda tentukan di sini harus cocok dengan kolom name di bagian secrets.
  • project-id adalah ID project Google Cloud Anda.
  • secret-name adalah nama secret yang berisi URL webhook Google Chat Anda.

Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi Google Chat.

Menjalankan skrip otomatisasi

Untuk mengotomatiskan konfigurasi notifikasi bagi notifikasi Anda:

  1. Buat clone repositori cloud-build-notifiers.

  2. Konfigurasikan Google Cloud CLI dengan project ID dan region Anda:

    gcloud config set project project-id
    gcloud config set run/region region
    

    Dengan keterangan:

    • project-id adalah ID project Google Cloud Anda.
    • region adalah region untuk men-deploy pemberitahuan.
  3. Jalankan perintah berikut di root repositori:

./setup.sh googlechat config-path -s secret-name

Dengan keterangan:

  • config-path adalah jalur ke file konfigurasi notifikasi Anda.
  • secret-name adalah nama secret Anda yang disimpan di Secret Manager.

Setelah menjalankan skrip, Anda akan melihat pesan berikut:

** NOTIFIER SETUP COMPLETE **

Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di repositori cloud-build-notifiers atau menjalankan ./setup.sh --help untuk mendapatkan petunjuk penggunaan yang terkait dengan skrip.

Masalah GitHub

Menyiapkan

Bagian berikut menjelaskan langkah-langkah yang perlu Anda selesaikan sebelum otomatisasi konfigurasi notifikasi untuk pemberitahuan Anda.

Mengaktifkan API

Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.

Enable the APIs

Mendapatkan dan menyimpan kredensial

  1. Buat GitHub Personal Access Token:

    1. Buka setelan GitHub untuk membuat token baru.
    2. Pilih cakupan repo.

    3. Klik Buat token

  2. Simpan token Anda di Secret Manager:

    1. Buka halaman Secret Manager di konsol Google Cloud:

      Buka halaman Secret Manager

    2. Klik Buat secret.

    3. Masukkan nama untuk secret Anda.

    4. Di bagian Nilai rahasia, tambahkan token GitHub Anda.

    5. Untuk menyimpan secret, klik Buat secret.

Menulis file konfigurasi template

Tulis file konfigurasi template untuk menjelaskan format yang harus digunakan Masalah GitHub yang dibuat:

Dalam contoh file konfigurasi template berikut, kolom title dan body menggunakan variabel penggantian dari build:

{
    "title": "Build {{.Build.BuildTriggerId}}: {{.Build.Status}}",
    "body": "[{{.Build.ProjectId}}] {{.Build.BuildTriggerId}} status: **{{.Build.Status}}**\n\n[View Logs]({{.Build.LogUrl}})"
}

Untuk melihat contohnya, lihat file konfigurasi template untuk notifikasi Masalah GitHub.

Kolom tambahan dapat ditetapkan dari parameter isi yang tersedia dari endpoint GitHub API untuk membuat masalah.

Menulis file konfigurasi pemberitahuan

Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi Google Chat dan memfilter peristiwa build:

Dalam contoh file konfigurasi notifikasi berikut, kolom filter menggunakan Common Expression Language dengan variabel yang tersedia, build, untuk memfilter peristiwa build dengan status SUCCESS:

apiVersion: cloud-build-notifiers/v1
kind: GitHubIssuesNotifier
metadata:
  name: example-githubissues-notifier
spec:
  notification:
    filter: build.status == Build.Status.FAILURE
    template: 
      type: golang
      uri: gs://project-id-notifiers-config/template-file-name
    delivery:
      githubToken:
        secretRef: github-token
      githubRepo: myuser/myrepo
  secrets:
  - name: github-token
    value: projects/project-id/secrets/secret-name/versions/latest

Dengan keterangan:

  • githubToken adalah variabel konfigurasi yang digunakan dalam contoh ini untuk mereferensikan token GitHub yang disimpan di Secret Manager. Nama variabel yang Anda tentukan di sini harus cocok dengan kolom name di bagian secrets.
  • project-id-notifiers-config adalah lokasi tempat template Anda akan diupload, dan bucket akan dibuat jika belum ada.
  • template-file-name adalah nama file template Anda.
  • myuser/myrepo adalah nama repo tempat masalah akan dibuat.
  • project-id adalah ID project Google Cloud Anda.
  • secret-name adalah nama secret yang berisi token GitHub Anda.

Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi Google Chat.

Untuk kolom tambahan yang dapat Anda gunakan untuk memfilter, lihat resource Build. Untuk contoh pemfilteran tambahan, lihat Menggunakan CEL untuk memfilter peristiwa build.

Menjalankan skrip otomatisasi

Untuk mengotomatiskan konfigurasi notifikasi bagi notifikasi Anda:

  1. Buat clone repositori cloud-build-notifiers.

  2. Konfigurasikan Google Cloud CLI dengan project ID dan region Anda:

    gcloud config set project project-id
    gcloud config set run/region region
    

    Dengan keterangan:

    • project-id adalah ID project Google Cloud Anda.
    • region adalah region untuk men-deploy pemberitahuan.
  3. Jalankan perintah berikut di root repositori:

    ./setup.sh githubissues config-path -t template-path -s secret-name

Dengan keterangan:

  • config-path adalah jalur ke file konfigurasi notifikasi Anda.
  • template-path adalah jalur ke file template notifikasi Anda. File template pemberitahuan Anda berisi template JSON yang dihosting di Cloud Storage dan mewakili pesan notifikasi Anda. Anda dapat menyertakan file template notifikasi sebagai jalur menggunakan variabel ini atau dalam kolom uri file konfigurasi notifikasi.
  • secret-name adalah nama secret Anda yang disimpan di Secret Manager.

Setelah menjalankan skrip, Anda akan melihat pesan berikut:

** NOTIFIER SETUP COMPLETE **

Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di repositori cloud-build-notifiers atau menjalankan ./setup.sh --help untuk mendapatkan petunjuk penggunaan yang terkait dengan skrip.

Langkah selanjutnya