Mengonfigurasi cluster untuk menerima notifikasi melalui email

Tutorial ini menunjukkan cara mengonfigurasi Integrasi Aplikasi untuk menerima notifikasi cluster Google Kubernetes Engine (GKE) melalui email.

Anda membuat integrasi dengan pemicu Pub/Sub untuk memproses topik yang ada yang menerima notifikasi dari cluster GKE. Kemudian, Anda dapat menggunakan tugas Pemetaan Data dan Pengubah Data untuk mengubah pesan Pub/Sub dan membuat isi email teks biasa.

Menyiapkan notifikasi cluster untuk cluster GKE Anda

Untuk menggunakan Pub/Sub guna menerima notifikasi tentang cluster GKE Anda, ikuti Menerima notifikasi cluster melalui Pub/Sub.

Buat integrasi baru

Untuk membuat integrasi baru, lakukan langkah-langkah berikut:

  1. Buka halaman Application Integration di konsol Google Cloud .

    Buka Application Integration

  2. Di menu navigasi, klik Integrasi. Halaman Integrations akan muncul.

  3. Klik Buat integrasi.

  4. Di Integration name, masukkan nama untuk integrasi yang Anda buat.

  5. Jika Anda mengaktifkan beberapa wilayah, opsi drop-down akan ditampilkan agar Anda dapat memilih wilayah untuk integrasi. Jika hanya satu wilayah yang diaktifkan, wilayah tersebut akan menjadi default dan drop-down tidak akan ditampilkan.

    Catatan: Drop-down Regions hanya mencantumkan region yang disediakan di Google Cloud project Anda. Untuk menyediakan region baru, Klik Enable Region yang ditampilkan di bagian bawah kotak.

  6. Klik Buat untuk membuka editor integrasi.

Menambahkan dan mengonfigurasi pemicu Pub/Sub

Untuk menambahkan pemicu Pub/Sub ke integrasi, ikuti langkah-langkah berikut:

  1. Di editor integrasi, pilih Pemicu untuk menampilkan daftar pemicu yang tersedia.

  2. Klik dan tempatkan elemen pemicu Pub/Sub ke desainer.

  3. Klik elemen Pemicu Pub/Sub di editor integrasi untuk melihat panel konfigurasi pemicu.

  4. Tentukan topik yang harus didengarkan oleh pemicu di kolom Pub/Sub topic dalam format berikut:

    projects/PROJECT_ID/topics/TOPIC_ID
    

    Ganti kode berikut:

  • PROJECT_ID: Google Cloud project tempat topik Anda dibuat.

  • TOPIC_ID: ID topik Pub/Sub yang Anda buat di Siapkan lingkungan Anda.

    Misalnya, jika project Anda bernama my-project dan Anda memberi nama topik gke-notifications, masukkan:

    projects/my-project/topics/gke-notifications
    

    Untuk melihat semua topik yang tersedia di project Google Cloud Anda, lihat kolom Nama topik di Topik. Panel konfigurasi pemicu Pub/Sub akan otomatis mengisi kolom Output Pemicu dengan variabel untuk menyimpan pesan Pub/Sub.

Menambahkan dan mengonfigurasi tugas Pemetaan Data

Tugas Pemetaan Data membantu mengekstrak variabel yang relevan dari notifikasi Pub/Sub. Fungsi ini mengambil file JSON pesan Pub/Sub sebagai input dan mengekstrak variabel sebagai output.

Untuk mengonfigurasi tugas Pemetaan Data:

  1. Pilih Tugas untuk menampilkan daftar tugas yang tersedia.

  2. Klik dan tempatkan elemen Pemetaan Data di editor integrasi.

  3. Klik tugas Pemetaan Data di perancang untuk membuka panel konfigurasi untuk tugas tersebut.

  4. Untuk menambahkan koneksi edge dari pemicu Pub/Sub ke Pemetaan Data, tahan kursor di titik kontrol pada pemicu Pub/Sub, lalu tarik garis ke titik kontrol pada tugas Pemetaan Data. Edge menunjukkan aliran kontrol dari pemicu Pub/Sub ke tugas Pemetaan Data.

  5. Klik Open Data Mapping Editor. Editor Pemetaan Data memungkinkan Anda memetakan variabel input ke variabel output yang dipilih, menggunakan fungsi transformasi yang tersedia. Output kemudian tersedia sebagai variabel untuk tugas atau pemicu integrasi lainnya. Untuk mengetahui informasi selengkapnya tentang variabel di Integrasi Aplikasi, lihat Variabel.

    Untuk tutorial ini, ikuti langkah-langkah berikut untuk membuat pemetaan menggunakan CloudPubSubMessage sebagai input:

    1. Perluas variabel JSON CloudPubSubMessage dalam daftar Variables dan tarik variabel CloudPubSubMessage.data ke baris Input pertama.
    2. Untuk membuat variabel output baru yang menyimpan nilai data yang diubah, klik baris pertama di kolom Output. Kemudian, lakukan hal berikut:
      1. Di kolom Name, masukkan message_data.
      2. Dari daftar Variable Type, pilih Output from integration.
      3. Dari daftar Jenis Data, pilih String.
      4. Klik Buat. Variabel message_data muncul di Output.
    3. Tarik variabel CloudPubSubMessage.attributes dari daftar Variabel ke baris kedua di kolom Input.
    4. Klik baris kedua di kolom Output untuk membuat variabel output baru guna menyimpan nilai payload JSON dengan atribut cluster. Lengkapi kolom berikut:

      1. Di kolom Name, masukkan attributes.
      2. Dari daftar Jenis Variabel, pilih Tidak Ada.
      3. Dari daftar Jenis Data, pilih JSON.
      4. Pilih Masukkan skema JSON dari opsi skema JSON, lalu tempelkan payload berikut:

        {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "type": "object",
          "properties": {
            "cluster_name": {
              "type": "string"
            },
            "payload": {
              "type": "string"
            },
            "project_id": {
              "type": "string"
            },
            "cluster_location": {
              "type": "string"
            },
            "type_url": {
              "type": "string"
            }
          }
        }
        
      5. Klik Buat. Variabel attributes muncul di Output. Pastikan variabel atribut terlihat mirip dengan berikut ini:

        Variabel Lokal Application Integration

    5. Klik baris ketiga di kolom Input, lalu pilih attributes.cluster_name dari panel Variabel. Anda mungkin perlu mulai mengetik attributes untuk melihat semua 5 atribut yang ditentukan dari skema yang dimasukkan pada langkah sebelumnya.

    6. Klik baris yang sesuai dari kolom Output untuk membuat variabel output baru yang akan menyimpan nilai atribut nama cluster. Lengkapi kolom berikut:

      1. Di kolom Name, masukkan cluster_name.
      2. Dari daftar Variable Type, pilih Output from integration.
      3. Dari daftar Jenis Data, pilih String.
      4. Klik Buat. Variabel cluster_name muncul di Output.
    7. Ulangi langkah e dan f untuk project_id, cluster_location, type_url, dan payload.

    8. Tutup Editor Pemetaan Data setelah pemetaan Anda selesai. Setiap perubahan akan disimpan otomatis.

Menambahkan dan mengonfigurasi tugas Transformer Data (Skrip)

Tugas Data Transformer mengambil variabel yang diekstrak dari tugas Pemetaan Data sebagai input dan mengubahnya menjadi isi pesan untuk penggunaan pengguna akhir.

Untuk mengonfigurasi tugas Data Transformer:

  1. Pilih Tugas untuk menampilkan daftar tugas yang tersedia.
  2. Klik dan tempatkan elemen Data Transformer (Script) di editor integrasi.
  3. Klik tugas Data Transformer di perancang untuk membuka panel konfigurasi tugas.
  4. Untuk menambahkan koneksi edge dari tugas Pemetaan Data ke tugas Pengubah Data, tahan pointer di atas titik kontrol pada Pemetaan Data, lalu tarik garis ke titik kontrol pada tugas Pengubah Data. Edge menunjukkan aliran kontrol dari tugas Pemetaan Data ke tugas Transformer Data.
  5. Klik Open Data Transformer Editor. Editor Transformer Data memungkinkan Anda menulis, mengedit, dan mengevaluasi template Jsonnet kustom untuk melakukan pemetaan data dalam integrasi Anda. Output kemudian tersedia sebagai variabel untuk tugas atau pemicu integrasi lainnya. Untuk mengetahui detail selengkapnya tentang tugas transformer ini, lihat Tugas Transformer Data. Untuk panduan memulai ini, ikuti langkah-langkah berikut untuk membuat skrip:

    1. Klik Buat di panel kiri Variabel. Tindakan ini akan membuka panel Buat variabel di sisi kanan. Lengkapi kolom berikut:

      • Nama: Masukkan full_message.
      • Pilih Output from integration di kotak drop-down Variable Type.
      • Pilih String di kotak drop-down Jenis Data.
      • Klik Buat untuk membuat variabel dan menutup panel. Variabel full_message baru akan muncul di daftar Variabel.
    2. Pilih Skrip.

    3. Gunakan contoh skrip berikut sebagai template untuk isi pesan saat notifikasi dikirim dari cluster Anda:

      local message_data = std.extVar("message_data");
      local cluster_name = std.extVar("cluster_name");
      local project_id = std.extVar("project_id");
      local cluster_location = std.extVar("cluster_location");
      local type_url = std.extVar("type_url");
      local payload = std.extVar("payload");
      
      {full_message: "Project ID: " + project_id + "\n" +
                    "Cluster Name: " + cluster_name + "\n" +
                    "Location: " + cluster_location + "\n" +
                    "Event Type: " + type_url + "\n" +
                    "Message: " + message_data + "\n" +
                    "Payload: " + std.manifestJson(std.parseJson(payload))}
      
    4. Tutup Editor Pemetaan Data setelah pemetaan Anda selesai. Setiap perubahan akan disimpan otomatis.

Menambahkan dan mengonfigurasi tugas Kirim Email

Untuk mengonfigurasi tugas Kirim Email:

  1. Pilih Tasks di editor integrasi untuk menampilkan daftar tugas yang tersedia.
  2. Klik dan tempatkan elemen Kirim Email di editor integrasi.
  3. Untuk menambahkan koneksi edge dari tugas Data Transformer ke tugas Send email, tahan pointer di atas titik kontrol pada tugas Data Transformer, lalu tarik garis ke titik kontrol pada tugas Send email. Edge menunjukkan aliran kontrol dari tugas Data Transformer ke tugas Kirim email.
  4. Klik elemen Send Email di perancang untuk membuka panel konfigurasi tugas. Tetapkan properti berikut:
    1. Kepada Penerima: Masukkan alamat email. Anda akan menggunakan email ini untuk mengonfirmasi keberhasilan penyelesaian integrasi.
    2. Subjek: Masukkan GKE Notifications.
    3. Isi dalam Teks Biasa: Pilih variabel full_message yang dibuat sebelumnya di tugas Pengubah Data.
    4. Opsi lainnya dapat dibiarkan dalam konfigurasi default.

Perubahan pada properti akan disimpan secara otomatis dan kanvas Anda akan terlihat mirip dengan berikut ini:

Kanvas Application Integration

Menguji integrasi

Untuk menguji integrasi baru, buka menu navigasi di bagian atas diagram Integrasi, lalu klik Uji. Panel akan terbuka di sisi kanan. Anda dapat menggunakan contoh pesan Pub/Sub berikut di bagian Add a json value:

{
  "data": "Node pool projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool is upgrading to version 1.29.1-gke.1589017.",
  "attributes": {
    "cluster_location": "us-central1-c",
    "cluster_name": "cluster-1",
    "payload": "{\"resourceType\":\"NODE_POOL\",\"operation\":\"operation-upgrade\",\"operationStartTime\":\"2024-05-07T20:09:35.528855756Z\",\"currentVersion\":\"1.28.7-gke.1026000\",\"targetVersion\":\"1.29.1-gke.1589017\",\"resource\":\"projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool\"}",
    "project_id": "my-project",
    "type_url": "type.googleapis.com/google.container.v1beta1.UpgradeEvent"
  }
}

Email akan dikirim ke alamat email yang telah Anda konfigurasi di tugas Send Email setelah mengklik tombol Test Integration.

Memublikasikan integrasi Anda

Setelah Anda berhasil menguji integrasi ini, klik Publikasikan agar integrasi Anda mulai memproses pesan.

Anda hanya dapat mengedit integrasi versi DRAFT, dan menjalankan integrasi versi ACTIVE. Jika Anda ingin mengedit integrasi, klik Aktifkan Pengeditan di halaman perancang integrasi, lalu buat versi draf. Untuk mengetahui informasi selengkapnya, lihat Penguncian pengeditan integrasi.