Topik ini menjelaskan sintaksis dan parameter fungsi kontrol alur serta memberikan contoh penggunaannya.
Fungsi
Function | Description |
Menggabungkan beberapa operasi.
Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Transform complex JSON data. | |
Menjalankan operasi jika kondisi tertentu terpenuhi. Anda dapat menentukan beberapa pasangan kondisi-operasi.
Sebagai contoh, aturan transformasi ini setara dengan struktur kode Python berikut: Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Transform complex JSON data. | |
Menjalankan operasi berdasarkan hasil evaluasi kondisi tertentu. Sebagai contoh, aturan transformasi ini sesuai dengan struktur kode Python berikut: | |
Sekumpulan kondisi dan operasi yang terkait.
Sebagai contoh, aturan transformasi ini setara dengan struktur kode Python berikut: Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Distribute data to multiple destination Logstores. |
e_compose
Anda dapat menggabungkan beberapa operasi.
-
Sintaksis
e_compose(Operation 1, Operation 2, ...) -
Parameter
Parameter Name
Type
Required
Description
Operation 1
Global processing function
Yes
A global processing function or a combination of global processing functions.
Operation 2
Global processing function
No
A global processing function or a combination of global processing functions.
-
Respons
Log dikembalikan setelah operasi dijalankan.
-
Contoh
Jika nilai bidang content adalah 123, hapus bidang age dan name, lalu ubah nilai bidang content menjadi ctx.
Log mentah
content: 123 age: 23 name: twissAturan transformasi
e_if( e_search("content==123"), e_compose(e_drop_fields("age|name"), e_rename("content", "ctx")), )Hasil
ctx: 123
Referensi
Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Transform complex JSON data.
e_if
Sistem menjalankan operasi berdasarkan kondisi penilaian.
-
Sintaksis
e_if(Condition, Operation) e_if(Condition 1, Operation 1, Condition 2, Operation 2, ...)CatatanAnda harus menentukan parameter
ConditiondanOperationsecara berpasangan. -
Parameter
Parameter Name
Type
Required
Description
Condition
Arbitrary
Yes
An expression or a combination of expressions. If the result is not a Boolean value, the system evaluates whether the condition is true or false.
Operation
Global processing function
Yes
A global processing function or a combination of global processing functions.
-
Respons
Log yang telah menjalani operasi yang ditentukan dikembalikan.
-
Contoh
Contoh 1: Mencocokkan nilai bidang dengan nilai yang ditentukan dan menjalankan operasi.
Jika nilai bidang result adalah failed atau failure, atur bidang __topic__ menjadi
login_failed_event.e_if(e_match("result", r"failed|failure"), e_set("__topic__", "login_failed_event"))Contoh 2: Melakukan evaluasi berdasarkan nilai bidang dan menjalankan 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: Melakukan evaluasi lanjutan dan menjalankan operasi.
Jika nilai bidang valid adalah failed dalam huruf kecil, buang log tersebut.
e_if(op_eq(str_lower(v("valid")), "failed"), DROP)Contoh 4: Menjalankan beberapa operasi secara berurutan berdasarkan kondisi yang ditentukan.
e_if(True, e_set("__topic__", "default_login"), e_match("valid", "failed"), e_set("__topic__", "login_failed_event") )
Referensi
Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Transform complex JSON data.
e_if_else
Menjalankan operasi berdasarkan hasil evaluasi kondisi.
-
Sintaksis
e_if_else(Condition, Operation 1 if Condition evaluates to true, Operation 2 if Condition evaluates to false) -
Parameter
Parameter Name
Type
Required
Description
Condition
Arbitrary
Yes
An expression or a combination of expressions. If the result is not a Boolean value, the system evaluates whether the condition is true or false.
Real-time operation
Global processing function
Yes
A global processing function or a combination of global processing functions.
Mock operation
Global processing function
Yes
A global processing function or a combination of global processing functions.
-
Respons
Mengembalikan hasil operasi berdasarkan kondisi yang berbeda.
-
Contoh
Jika nilai bidang result adalah ok atau pass, atau jika nilai bidang status adalah 200, pertahankan log tersebut.
Log mentah
result: ok status: 400result: Pass status: 200result: failure status: 500Aturan transformasi
e_if_else( op_or(e_match("result", r"(?i)ok|pass"), e_search("status== 200")), KEEP, DROP )Hasil: Dua log pertama dipertahankan. Log ketiga dibuang.
result: ok status: 400result: Pass status: 200
e_switch
Anda dapat menggabungkan beberapa kondisi dan operasi.
-
Sintaksis
e_switch(Condition 1, Operation 1, ..., default=None)CatatanAnda harus menentukan parameter
ConditiondanOperationsecara berpasangan. -
Parameter
Parameter Name
Type
Required
Description
Condition
Arbitrary
Yes
An expression or a combination of expressions. If the result is not a Boolean value, the system evaluates whether the condition is true or false.
Operation
Global processing function
Yes
A global processing function or a combination of global processing functions.
default
Global processing function
No
A global processing function or a combination of global processing functions. If no specified conditions are met, the operation specified by the default parameter is performed.
-
Respons
Log yang telah menjalani operasi yang ditentukan dikembalikan.
-
Contoh
Jika nilai bidang content adalah 123, atur bidang __topic__ menjadi Number. Jika nilai bidang data adalah 123, atur bidang __topic__ menjadi PRO.
Log mentah
__topic__: age: 18 content: 123 name: maki data: 342__topic__: age: 18 content: 23 name: maki data: 123Aturan transformasi
e_switch( e_search("content==123"), e_set("__topic__", "Number", mode="overwrite"), e_search("data==123"), e_set("__topic__", "PRO", mode="overwrite"), )Hasil
__topic__: Number age: 18 content: 123 name: maki data: 342__topic__: PRO age: 18 content: 23 name: maki data: 123
-
Gabungkan fungsi e_switch dan e_output untuk mengirimkan log yang memenuhi aturan tertentu ke Logstore yang berbeda. Jika default=e_drop() diatur, log yang tidak memenuhi aturan akan dibuang dan tidak dikirimkan. Jika Anda tidak mengatur parameter default, log yang tidak memenuhi aturan akan dikirimkan ke Logstore pertama yang dikonfigurasi.
Log mentah
__topic__: sas-log-dns test: aliyun __topic__: aegis-log-network test:ecs __topic__: local-dns test:sls __topic__: aegis-log-login test: 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 fungsi lain. Untuk informasi selengkapnya, lihat Distribute data to multiple destination Logstores.