Topik ini menjelaskan sintaksis dan parameter dari fungsi kontrol alur serta memberikan contoh penggunaannya.
Fungsi
Fungsi | Deskripsi |
Menggabungkan beberapa operasi.
Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Transformasikan data JSON kompleks. | |
Menjalankan operasi jika kondisi tertentu terpenuhi. Anda dapat menentukan beberapa pasangan kondisi-operasi.
Contoh fungsi di atas setara dengan kode Python berikut: Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Transformasikan data JSON kompleks. | |
Menjalankan operasi berdasarkan hasil evaluasi kondisi tertentu. Contoh fungsi di atas setara dengan kode Python berikut: | |
Menjalankan operasi jika kondisi tertentu terpenuhi. Anda dapat menentukan beberapa pasangan kondisi-operasi.
Contoh fungsi di atas setara dengan kode Python berikut: Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Distribusikan data ke beberapa Logstore tujuan. |
e_compose
Fungsi e_compose menggabungkan beberapa operasi.
Sintaksis
e_compose(Operasi 1, Operasi 2, ...)Parameter
Parameter
Tipe
Diperlukan
Deskripsi
Operasi 1
Fungsi pemrosesan global
Ya
Fungsi pemrosesan global atau kombinasi fungsi pemrosesan global.
Operasi 2
Fungsi pemrosesan global
Tidak
Fungsi pemrosesan global atau kombinasi fungsi pemrosesan global.
Respons
Log tempat operasi yang ditentukan dilakukan dikembalikan.
Contoh
Jika nilai bidang konten adalah 123, hapus bidang umur dan nama, lalu ubah nilai bidang konten menjadi ctx.
Log mentah
konten: 123 umur: 23 nama: twissAturan transformasi
e_if( e_search("konten==123"), e_compose(e_drop_fields("umur|nama"), e_rename("konten", "ctx")), )Hasil
ctx: 123
Referensi
Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Transformasikan Data JSON Kompleks.
e_if
Fungsi e_if menjalankan operasi jika kondisi tertentu terpenuhi.
Sintaksis
e_if(Kondisi, Operasi) e_if(Kondisi 1, Operasi 1, Kondisi 2, Operasi 2, ...)CatatanAnda harus menentukan parameter
KondisidanOperasidalam pasangan.Parameter
Parameter
Tipe
Diperlukan
Deskripsi
Kondisi
Sembarang
Ya
Ekspresi atau kombinasi ekspresi. Jika hasilnya bukan nilai Boolean, sistem akan mengevaluasi apakah kondisi benar atau salah.
Operasi
Fungsi pemrosesan global
Ya
Fungsi pemrosesan global atau kombinasi fungsi pemrosesan global.
Respons
Log tempat operasi yang ditentukan dilakukan dikembalikan.
Contoh
Contoh 1: Cocokkan nilai bidang dengan nilai yang ditentukan dan jalankan operasi.
Jika nilai bidang hasil adalah gagal atau kegagalan, atur bidang __topic__ menjadi
login_failed_event.e_if(e_match("hasil", r"gagal|kegagalan"), e_set("__topic__", "login_failed_event"))Contoh 2: Lakukan evaluasi berdasarkan nilai bidang dan jalankan operasi.
Jika bidang request_body ada dan tidak kosong, panggil fungsi pemrosesan bidang e_json untuk memperluas nilai bidang request_body menjadi beberapa nilai.
e_if(v("request_body"), e_json("request_body"))Contoh 3: Lakukan evaluasi tingkat lanjut dan jalankan operasi.
Jika nilai bidang valid adalah gagal dalam huruf kecil, buang log.
e_if(op_eq(str_lower(v("valid")), "gagal"), DROP)Contoh 4: Jalankan beberapa operasi secara berurutan berdasarkan kondisi yang ditentukan.
e_if(True, e_set("__topic__", "default_login"), e_match("valid", "gagal"), e_set("__topic__", "login_failed_event") )
Referensi
Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Transformasikan Data JSON Kompleks.
e_if_else
Fungsi e_if_else menjalankan operasi berdasarkan hasil evaluasi kondisi tertentu.
Sintaksis
e_if_else(Kondisi, Operasi 1 jika Kondisi bernilai benar, Operasi 2 jika Kondisi bernilai salah)Parameter
Parameter
Tipe
Diperlukan
Deskripsi
Kondisi
Sembarang
Ya
Ekspresi atau kombinasi ekspresi. Jika hasilnya bukan nilai Boolean, sistem akan mengevaluasi apakah kondisi benar atau salah.
Operasi 1 jika Kondisi bernilai benar
Fungsi pemrosesan global
Ya
Fungsi pemrosesan global atau kombinasi fungsi pemrosesan global.
Operasi 2 jika Kondisi bernilai salah
Fungsi pemrosesan global
Ya
Fungsi pemrosesan global atau kombinasi fungsi pemrosesan global.
Respons
Log tempat operasi dilakukan berdasarkan hasil evaluasi kondisi yang ditentukan dikembalikan.
Contoh
Jika nilai bidang hasil adalah ok atau pass, atau jika nilai bidang status adalah 200, pertahankan log.
Log mentah
hasil: ok status: 400hasil: Pass status: 200hasil: kegagalan status: 500Aturan transformasi
e_if_else( op_or(e_match("hasil", r"(?i)ok|pass"), e_search("status== 200")), KEEP, DROP )Hasil: Dua log pertama dipertahankan. Log ketiga dibuang.
hasil: ok status: 400hasil: Pass status: 200
e_switch
Fungsi e_switch menjalankan operasi jika kondisi tertentu terpenuhi.
Sintaksis
e_switch(Kondisi 1, Operasi 1, ..., default=None)CatatanAnda harus menentukan parameter
KondisidanOperasidalam pasangan.Parameter
Parameter
Tipe
Diperlukan
Deskripsi
Kondisi
Sembarang
Ya
Ekspresi atau kombinasi ekspresi. Jika hasilnya bukan nilai Boolean, sistem akan mengevaluasi apakah kondisi benar atau salah.
Operasi
Fungsi pemrosesan global
Ya
Fungsi pemrosesan global atau kombinasi fungsi pemrosesan global.
default
Fungsi pemrosesan global
Tidak
Fungsi pemrosesan global atau kombinasi fungsi pemrosesan global. Jika tidak ada kondisi yang terpenuhi, operasi yang ditentukan oleh parameter default dilakukan.
Respons
Log tempat operasi yang ditentukan dilakukan dikembalikan.
Contoh
Jika nilai bidang konten adalah 123, atur bidang __topic__ menjadi Angka. Jika nilai bidang data adalah 123, atur bidang __topic__ menjadi PRO.
Log mentah
__topic__: umur: 18 konten: 123 nama: maki data: 342__topic__: umur: 18 konten: 23 nama: maki data: 123Aturan transformasi
e_switch( e_search("konten==123"), e_set("__topic__", "Angka", mode="overwrite"), e_search("data==123"), e_set("__topic__", "PRO", mode="overwrite"), )Hasil
__topic__: Angka umur: 18 konten: 123 nama: maki data: 342__topic__: PRO umur: 18 konten: 23 nama: maki data: 123
Anda dapat menggabungkan fungsi e_switch dan e_output untuk mengirim log yang memenuhi kondisi tertentu ke Logstore yang berbeda. Jika Anda menentukan default=e_drop(), log yang tidak memenuhi kondisi tertentu akan dibuang dan tidak dikirim. Jika Anda tidak mengonfigurasi parameter default, log yang tidak memenuhi kondisi tertentu akan dikirim ke Logstore pertama yang Anda tentukan.
Log mentah
__topic__: sas-log-dns tes: aliyun __topic__: aegis-log-network tes:ecs __topic__: local-dns tes:sls __topic__: aegis-log-login tes: slsAturan transformasi
e_switch(e_match("__topic__","sas-log-dns"),e_output(name="target1"), e_match("__topic__","sas-log-process"),e_output(name="target2"), e_match("__topic__","local-dns"),e_output(name="target3"), e_match("__topic__","aegis-log-network"),e_output(name="target4"), e_match("__topic__","aegis-log-login"),e_output(name="target5"), default=e_drop())
Referensi
Fungsi ini dapat digunakan bersama dengan fungsi lainnya. Untuk informasi lebih lanjut, lihat Distribusikan Data ke Beberapa Logstore Tujuan.