Tutorial ini menunjukkan cara mengonfigurasi Application Integration 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 Transformer Data untuk mengubah pesan Pub/Sub dan membuat isi email teks biasa.
Tujuan
- Membuat aplikasi Application Integration untuk menerima dan mengubah notifikasi eksternal dari GKE.
- Menulis tugas Kirim Email yang mengirimkan notifikasi Pub/Sub ke email.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen yang dapat ditagih berikut Google Cloud:
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, baca bagian Pembersihan.
Sebelum memulai
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the GKE, Application Integration and Pub/Sub APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- Aktifkan penerimaan notifikasi cluster GKE melalui Pub/Sub.
- Jika Anda menggunakan Application Integration di project untuk pertama kalinya, Anda harus menyiapkan Application Integration dengan membuka halaman Application Integration di konsol dan mengklik Provision.
Peran yang diperlukan
Untuk memastikan bahwa service-PROJECT_NUMBER@gcp-sa-integrations. 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. di project Anda:
- Editor Pub/Sub (
roles/pubsub.editor) - Editor Application Integration (
roles/integrations.integrationEditor) - Pemanggil Application Integration (
roles/integrations.integrationInvoker)
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.
Membuat integrasi baru
Untuk membuat integrasi baru, lakukan langkah-langkah berikut:
Buka halaman Application Integration di Google Cloud konsol.
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 ditetapkan secara 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.
Klik Create 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 Triggers untuk menampilkan daftar pemicu yang tersedia.
Klik dan tempatkan elemen pemicu Pub/Sub ke desainer.
Klik elemen Pub/Sub trigger di editor integrasi untuk melihat panel konfigurasi pemicu.
Tentukan topik yang harus diproses oleh pemicu di kolom Pub/Sub topic dalam format berikut:
projects/PROJECT_ID/topics/TOPIC_IDGanti kode berikut:
PROJECT_ID: Google Cloud project tempat topik Anda dibuat.TOPIC_ID: ID topik Pub/Sub yang Anda buat di Menyiapkan lingkungan Anda.Misalnya, jika project Anda diberi nama
my-projectdan Anda memberi nama topikgke-notifications, masukkan:projects/my-project/topics/gke-notificationsUntuk melihat semua topik yang tersedia di project Anda, lihat kolom Topic name di Topics. Google Cloud Panel konfigurasi pemicu Pub/Sub akan otomatis mengisi kolom Trigger Output 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. Tugas ini menggunakan file JSON pesan Pub/Sub sebagai input dan mengekstrak variabel sebagai output.
Untuk mengonfigurasi tugas Pemetaan Data:
Pilih Tasks untuk menampilkan daftar tugas yang tersedia.
Klik dan tempatkan elemen Data Mapping di editor integrasi.
Klik tugas Data Mapping di desainer untuk membuka panel konfigurasi tugas.
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 aliran kontrol dari pemicu Pub/Sub ke tugas Pemetaan Data.
Klik Open Data Mapping Editor. Data Mapping Editor 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 Application Integration, lihat Variabel.
Untuk tutorial ini, ikuti langkah-langkah berikut untuk membuat pemetaan menggunakan
CloudPubSubMessagesebagai input:- Luaskan variabel JSON
CloudPubSubMessagedalam daftar Variables lalu tarik variabelCloudPubSubMessage.datake baris Input pertama. - Untuk membuat variabel output baru yang menyimpan nilai data yang diubah, 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 Data Type, pilih String.
- Klik Create. Variabel
message_dataakan muncul di Output.
- Di kolom Name, masukkan
- Tarik variabel
CloudPubSubMessage.attributesdari daftar Variables ke baris kedua di kolom Input. Klik baris kedua di kolom Output untuk membuat variabel output baru yang menyimpan nilai payload JSON dengan atribut cluster. Lengkapi kolom berikut:
- Di kolom Name, masukkan
attributes. - Dari daftar Variable Type, pilih None.
- Dari daftar Data Type, pilih JSON.
Pilih Enter a JSON schema dari JSON schema options, lalu tempel 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
attributesakan 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_namedari panel Variables. Anda mungkin perlu mulai mengetik attributes untuk melihat semua 5 atribut yang ditentukan dari skema yang dimasukkan pada 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 Data Type, pilih String.
- Klik Create. Variabel
cluster_nameakan muncul di Output.
- Di kolom Name, masukkan
Ulangi langkah e dan f untuk
project_id,cluster_location,type_url, danpayload.Tutup Data Mapping Editor setelah pemetaan Anda selesai. Semua perubahan akan disimpan secara otomatis.
- Luaskan variabel JSON
Menambahkan dan mengonfigurasi tugas Data Transformer (Skrip)
Tugas Data Transformer menggunakan variabel yang diekstrak dari tugas Pemetaan Data sebagai input dan mengubahnya menjadi isi pesan untuk penggunaan pengguna akhir.
Untuk mengonfigurasi tugas Data Transformer:
- Pilih Tasks 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 tugas.
- Untuk menambahkan koneksi edge dari tugas Pemetaan Data ke tugas Data Transformer, tahan kursor di atas titik kontrol pada Pemetaan Data, lalu tarik garis ke titik kontrol pada tugas Data Transformer. Edge menunjukkan aliran kontrol dari tugas Pemetaan Data ke tugas Data Transformer.
Klik Open Data Transformer Editor. Data Transformer Editor 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 Data Transformer. Untuk panduan memulai ini, ikuti langkah-langkah berikut untuk membuat skrip:
Klik Create di panel kiri Variables. Tindakan ini akan membuka panel Create variable di sisi kanan. Lengkapi kolom berikut:
- Name: Masukkan
full_message. - Pilih
Output from integrationdi kotak drop-down Variable Type. - Pilih
Stringdi kotak drop-down Data Type. - Klik Create untuk membuat variabel dan menutup panel. Variabel
full_messagebaru akan muncul dalam daftar Variables.
- Name: Masukkan
Pilih Script.
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 Data Mapping Editor setelah pemetaan Anda selesai. Semua perubahan akan disimpan secara otomatis.
Menambahkan dan mengonfigurasi tugas Kirim Email
Untuk mengonfigurasi tugas Kirim Email:
- Pilih Tasks di editor integrasi untuk menampilkan daftar tugas yang tersedia.
- Klik dan tempatkan elemen Send Email di editor integrasi.
- Untuk menambahkan koneksi edge 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 aliran kontrol dari tugas Data Transformer ke tugas Kirim email.
- Klik elemen Send Email di desainer untuk membuka panel konfigurasi tugas. Tetapkan properti berikut:
- To Recipient(s): Masukkan alamat email. Anda akan menggunakan email ini untuk mengonfirmasi keberhasilan penyelesaian integrasi.
- Subjek: Masukkan
GKE Notifications. - Body in Plain Text: Pilih variabel
full_messageyang dibuat sebelumnya dalam tugas Data Transformer. - Opsi yang tersisa dapat dibiarkan dalam konfigurasi default.
Perubahan yang Anda buat pada properti akan disimpan secara otomatis dan kanvas Anda akan terlihat mirip dengan berikut ini:

Menguji integrasi
Untuk menguji integrasi baru, buka menu navigasi di bagian atas diagram Integrasi Anda, 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 konfigurasi dalam tugas Kirim Email setelah mengklik tombol Test Integration.
Memublikasikan integrasi Anda
Setelah berhasil menguji integrasi ini, klik Publish agar integrasi Anda mulai memproses pesan.
Anda hanya dapat mengedit integrasi versi DRAFT, dan hanya menjalankan integrasi versi ACTIVE. Jika ingin mengedit integrasi, klik Enable Editing di halaman desainer integrasi, lalu buat versi draf. Untuk mengetahui informasi selengkapnya,
lihat Kunci pengeditan 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
- Dikonsol, buka halaman Manage resources. Google Cloud
- Pada daftar project, pilih project yang Anda ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus resource satu per satu
Langkah berikutnya
- Pelajari tentang jenis notifikasi cluster.
- Lihat dokumentasi Pub/Sub.