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.
Tujuan
- Buat aplikasi Integrasi Aplikasi untuk menerima dan mengubah notifikasi eksternal dari GKE.
- Tulis tugas Kirim Email yang mengirimkan notifikasi Pub/Sub ke email.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloud yang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE, Application Integration and Pub/Sub APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE, Application Integration and Pub/Sub APIs.
- Aktifkan notifikasi cluster GKE.
- Jika Anda menggunakan Integrasi Aplikasi dalam project untuk pertama kalinya, pastikan Anda telah menyiapkan Integrasi Aplikasi.
Peran yang diperlukan
Untuk memastikan bahwa service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com memiliki izin yang diperlukan untuk menyiapkan notifikasi email untuk notifikasi cluster, minta administrator Anda untuk memberikan peran IAM berikut kepada service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com di project Anda:
-
Editor Pub/Sub (
roles/pubsub.editor
) -
Application Integration Editor (
roles/integrations.editor
)
Menyiapkan notifikasi cluster untuk cluster GKE Anda
Untuk menggunakan Pub/Sub guna menerima notifikasi tentang cluster GKE, ikuti Menerima notifikasi cluster.
Membuat integrasi baru
Untuk membuat integrasi baru, lakukan langkah-langkah berikut:
Buka halaman Application Integration di konsol Google Cloud.
Di menu navigasi, klik Integrations. Halaman Integrations akan muncul.
Klik Create integration.
Di Integration name, masukkan nama untuk integrasi yang Anda buat.
Jika Anda mengaktifkan beberapa region, opsi drop-down akan ditampilkan agar Anda dapat memilih region untuk integrasi. Jika hanya satu region yang diaktifkan, region tersebut akan menjadi default dan drop-down tidak akan ditampilkan.
Catatan: Drop-down Region hanya mencantumkan region yang disediakan di project Google Cloud Anda. Untuk menyediakan region baru, klik Enable Region yang ditampilkan di bagian bawah kotak.
Klik Buat untuk membuka editor integrasi.
Menambahkan dan mengonfigurasi pemicu Pub/Sub
Untuk menambahkan pemicu Pub/Sub ke integrasi, ikuti langkah-langkah berikut:
Di editor integrasi, pilih Pemicu untuk menampilkan daftar pemicu yang tersedia.
Klik dan tempatkan elemen pemicu Pub/Sub ke desainer.
Klik elemen Pemicu Pub/Sub di editor integrasi untuk melihat panel konfigurasi pemicu.
Tentukan topik yang harus diproses pemicu di kolom Pub/Sub topic dalam format berikut:
projects/PROJECT_ID/topics/TOPIC_ID
Ganti kode berikut:
PROJECT_ID
: project Google Cloud tempat topik Anda dibuat.TOPIC_ID
: ID topik Pub/Sub yang Anda buat di Menyiapkan lingkungan.Misalnya, jika project Anda bernama
my-project
dan Anda memberi nama topikgke-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 menggunakan file JSON pesan Pub/Sub sebagai input dan mengekstrak variabel sebagai output.
Untuk mengonfigurasi tugas Pemetaan Data:
Pilih Tugas untuk menampilkan daftar tugas yang tersedia.
Klik dan tempatkan elemen Pemetaan Data di editor integrasi.
Klik tugas Pemetaan Data di desainer untuk membuka panel konfigurasi untuk tugas tersebut.
Untuk menambahkan koneksi edge dari pemicu Pub/Sub ke Pemetaan Data, tahan kursor di atas titik kontrol pada pemicu Pub/Sub, lalu tarik garis ke titik kontrol pada tugas Pemetaan Data. Edge menunjukkan alur kontrol dari pemicu Pub/Sub ke tugas Pemetaan Data.
Klik Buka Editor Pemetaan Data. 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:- Luaskan variabel JSON
CloudPubSubMessage
dalam daftar Variables dan tarik variabelCloudPubSubMessage.data
ke baris Input pertama. - Untuk membuat variabel output baru guna menyimpan nilai data yang ditransformasi,
klik baris pertama di kolom Output. Kemudian, lakukan hal berikut:
- Di kolom Name, masukkan
message_data
. - Dari daftar Variable Type, pilih Output from integration.
- Dari daftar Jenis Data, pilih String.
- Klik Create. Variabel
message_data
muncul di Output.
- Di kolom Name, masukkan
- Tarik variabel
CloudPubSubMessage.attributes
dari daftar Variabel ke baris kedua di kolom Input. Klik baris kedua di kolom Output untuk membuat variabel output baru untuk menyimpan nilai payload JSON dengan atribut cluster. Lengkapi kolom berikut:
- Di kolom Name, masukkan
attributes
. - Dari daftar Jenis Variabel, pilih Tidak ada.
- Dari daftar Jenis Data, pilih JSON.
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" } } }
Klik Create. Variabel
attributes
muncul di Output. Pastikan variabel atribut terlihat mirip dengan berikut ini:
- Di kolom Name, masukkan
Klik baris ketiga di kolom Input, lalu pilih
attributes.cluster_name
dari panel Variables. Anda mungkin perlu mulai mengetik attributes untuk melihat kelima atribut yang ditentukan dari skema yang dimasukkan di langkah sebelumnya.Klik baris yang sesuai dari kolom Output untuk membuat variabel output baru yang akan menyimpan nilai atribut nama cluster. Lengkapi kolom berikut:
- Di kolom Name, masukkan
cluster_name
. - Dari daftar Variable Type, pilih Output from integration.
- Dari daftar Jenis Data, pilih String.
- Klik Create. Variabel
cluster_name
muncul di Output.
- Di kolom Name, masukkan
Ulangi langkah e dan f untuk
project_id
,cluster_location
,type_url
, danpayload
.Tutup Editor Pemetaan Data setelah pemetaan selesai. Setiap perubahan akan otomatis disimpan.
- Luaskan variabel JSON
Menambahkan dan mengonfigurasi tugas Transformer Data (Skrip)
Tugas Pengubah Data mengambil variabel yang diekstrak dari tugas Pemetaan Data sebagai input dan mengubahnya menjadi isi pesan untuk penggunaan pengguna akhir.
Untuk mengonfigurasi tugas Data Transformer:
- Pilih Tugas untuk menampilkan daftar tugas yang tersedia.
- Klik dan tempatkan elemen Data Transformer (Script) di editor integrasi.
- Klik tugas Data Transformer di desainer untuk membuka panel konfigurasi untuk tugas tersebut.
- Untuk menambahkan koneksi tepi dari tugas Pemetaan Data ke tugas Pengubah Data, tahan kursor di atas titik kontrol pada Pemetaan Data, lalu tarik garis ke titik kontrol pada tugas Pengubah Data. Tepi menunjukkan alur kontrol dari tugas Pemetaan Data ke tugas Pengubah Data.
Klik Buka Editor Pengubah Data. Editor Pengubah 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 pengubah ini, lihat Tugas Pengubah Data. Untuk memulai cepat ini, ikuti langkah-langkah berikut untuk membuat skrip:
Klik
Buat di panel kiri Variabel. Tindakan ini akan membuka panel Buat variabel di sebelah kanan. Lengkapi kolom berikut:- Nama: Masukkan
full_message
. - Pilih
Output from integration
di kotak drop-down Variable Type. - Pilih
String
di kotak drop-down Data Type. - Klik Create untuk membuat variabel dan menutup panel. Variabel
full_message
baru akan muncul di daftar Variabel.
- Nama: Masukkan
Pilih Skrip.
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))}
Tutup Editor Pemetaan Data setelah pemetaan selesai. Setiap perubahan akan disimpan secara otomatis.
Menambahkan dan mengonfigurasi tugas Kirim Email
Untuk mengonfigurasi tugas Kirim Email:
- Pilih Tugas di editor integrasi untuk menampilkan daftar tugas yang tersedia.
- Klik dan tempatkan elemen Kirim Email di editor integrasi.
- Untuk menambahkan koneksi tepi dari tugas Data Transformer ke tugas Kirim email, tahan kursor di atas titik kontrol pada tugas Data Transformer, lalu tarik garis ke titik kontrol pada tugas Kirim email. Edge menunjukkan alur kontrol dari tugas Data Transformer ke tugas Kirim email.
- Klik elemen Kirim Email di desainer untuk membuka panel konfigurasi
tugas. Tetapkan properti berikut:
- Kepada Penerima: Masukkan alamat email. Anda akan menggunakan email ini untuk mengonfirmasi selesainya integrasi.
- Subjek: Masukkan
GKE Notifications
. - Isi dalam Teks Biasa: Pilih variabel
full_message
yang dibuat sebelumnya dalam tugas Data Transformer. - Opsi lainnya dapat dibiarkan dalam konfigurasi default.
Perubahan pada properti akan disimpan secara otomatis dan kanvas Anda akan terlihat seperti berikut:
Menguji integrasi
Untuk menguji integrasi baru, buka menu navigasi di bagian atas diagram Integration, lalu klik Test. Tindakan ini akan membuka panel 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 konfigurasikan dalam tugas Kirim Email setelah mengklik tombol Uji Integrasi.
Memublikasikan integrasi
Setelah berhasil menguji integrasi ini, klik Publikasikan agar integrasi Anda mulai memproses pesan.
Anda hanya dapat mengedit versi DRAFT
integrasi, dan hanya mengeksekusi versi ACTIVE
integrasi. Jika Anda ingin mengedit integrasi, klik Aktifkan Pengeditan di halaman desainer integrasi, lalu buat versi draf. Untuk mengetahui informasi selengkapnya,
lihat Kunci edit integrasi.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Menghapus resource satu per satu
Langkah selanjutnya
- Pelajari jenis notifikasi cluster.
- Lihat dokumentasi Pub/Sub.