All Products
Search
Document Center

Simple Log Service:Fungsi kontrol alur

Last Updated:Mar 14, 2026

Topik ini menjelaskan sintaksis dan parameter fungsi kontrol alur serta memberikan contoh penggunaannya.

Fungsi

Function

Description

e_compose

Menggabungkan beberapa operasi.

  • Fungsi ini umumnya digunakan dalam fungsi e_if, e_switch, atau e_if_else.

  • Fungsi ini menjalankan operasi yang ditentukan secara berurutan pada sebuah log dan mengembalikan hasilnya.

  • Jika fungsi menjalankan operasi yang menghapus log, fungsi tidak akan menjalankan operasi lain pada log tersebut.

Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Transform complex JSON data.

e_if

Menjalankan operasi jika kondisi tertentu terpenuhi. Anda dapat menentukan beberapa pasangan kondisi-operasi.

  • Jika suatu kondisi terpenuhi, fungsi menjalankan operasi yang sesuai dengan kondisi tersebut. Jika kondisi tidak terpenuhi, fungsi tidak menjalankan operasi tersebut, tetapi mengevaluasi kondisi berikutnya.

  • Jika fungsi menjalankan operasi yang menghapus log, fungsi tidak akan menjalankan operasi lain pada log tersebut.

e_if(
    e_has("a"), e_output("target-a"), 
    e_has("b"), e_output("target-b"),
)

Sebagai contoh, aturan transformasi ini setara dengan struktur kode Python berikut:

if e_has("a"):
    e_output("target-a")
if e_has("b"):
    e_output("target-b")

Fungsi ini dapat digunakan bersama fungsi lain. Untuk informasi selengkapnya, lihat Transform complex JSON data.

e_if_else

Menjalankan operasi berdasarkan hasil evaluasi kondisi tertentu.

e_if_else(e_has("a"), e_output("target-a"), e_output("target-b"))

Sebagai contoh, aturan transformasi ini sesuai dengan struktur kode Python berikut:

if e_has("a"):
    e_output("target-a")
else:
    e_output("target-b")

e_switch

Sekumpulan kondisi dan operasi yang terkait.

  • Jika suatu kondisi terpenuhi, fungsi menjalankan operasi yang sesuai dengan kondisi tersebut dan mengembalikan hasilnya. Jika kondisi tidak terpenuhi, fungsi tidak menjalankan operasi tersebut, tetapi mengevaluasi kondisi berikutnya.

  • Jika tidak ada kondisi yang terpenuhi dan parameter default dikonfigurasi, fungsi menjalankan operasi yang ditentukan oleh parameter default dan mengembalikan hasilnya.

  • Jika fungsi menjalankan operasi yang menghapus log, fungsi tidak akan menjalankan operasi lain pada log tersebut.

e_switch(
    e_has("a"), e_output("target-a"), 
    e_has("b"), e_output("target-b"),
    default=e_output("target-default"), 
)

Sebagai contoh, aturan transformasi ini setara dengan struktur kode Python berikut:

if e_has("a"):
    e_output("target-a")
elif e_has("b"):
    e_output("target-b")
else:
    e_output("target-default")

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: twiss
    • Aturan 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, ...)
    Catatan

    Anda harus menentukan parameter Condition dan Operation secara 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: 400
      result: Pass
      status: 200
      result: failure
      status: 500
    • Aturan 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: 400
      result: Pass
      status: 200

e_switch

Anda dapat menggabungkan beberapa kondisi dan operasi.

  • Sintaksis

    e_switch(Condition 1, Operation 1, ..., default=None)
    Catatan

    Anda harus menentukan parameter Condition dan Operation secara 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: 123
      • Aturan 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: sls
      • Aturan 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.