Membuat logika dengan Pembuat Ekspresi

Didukung di:

Pembuat Ekspresi memungkinkan Anda mengurai dan mengubah hasil JSON, untuk digunakan dalam tindakan berikutnya. Pembuat Ekspresi menghasilkan berbagai fungsi transformasi dinamis yang dapat Anda gabungkan, pratinjau, dan uji, sehingga memberikan pengalaman interaktif untuk mengubah dan mengurai hasil tindakan mentah.

Setelah memilih placeholder untuk parameter dalam tindakan playbook, Anda dapat menggunakan hasil JSON. Hasil ini memberi Anda informasi komprehensif yang ditampilkan oleh tindakan, yang dapat Anda gunakan dalam tindakan dan alur playbook berikutnya. Untuk mengetahui detailnya, lihat Kasus Penggunaan untuk Pembuat Ekspresi.

Melihat Pembuat Ekspresi

Contoh ini menunjukkan potensi data dan tidak mencerminkan hasil real-time. Data sebenarnya mungkin berbeda dan mungkin berisi lebih banyak atau lebih sedikit kolom. Jika seorang analis mengetahui kolom tambahan yang akan ditampilkan saat runtime, mereka dapat memasukkan jalur kunci yang sesuai di kolom sintaksis.

Fungsi

Fungsi pipe berikut didukung:

  • First (x): Menampilkan X elemen pertama dari array.
    Contoh: alerts | First(2) (Jika alerts adalah [{"id": "A"}, {"id": "B"}, {"id": "C"}], akan menampilkan [{"id": "A"}, {"id": "B"}])
  • Last (x): Menampilkan X elemen terakhir dari array.
    Contoh: alerts | Last(1) (Jika alerts adalah [{"id": "A"}, {"id": "B"}, {"id": "C"}], akan menampilkan [{"id": "C"}])
  • Min (KeyPath): Menampilkan item dengan nilai minimum dari array. Jika parameter keyPath diberikan, fungsi ini akan menampilkan objek dengan nilai minimum di jalur yang ditentukan.
    Contoh: alerts | Min("score") (Jika alerts berisi daftar objek dengan kolom score, fungsi ini akan menampilkan objek dengan skor terendah)
  • Max (KeyPath): Menampilkan item dengan nilai maksimum dari array. Jika parameter keyPath diberikan, fungsi ini akan menampilkan objek dengan nilai maksimum di jalur yang ditentukan.
    Contoh: alerts | Max("score") (Jika alerts berisi daftar objek dengan kolom score, fungsi ini akan menampilkan objek dengan skor tertinggi)
  • Filter (ConditionKey, Operator, Value): Memfilter array objek, hanya menampilkan objek yang cocok dengan kondisi pada kolom yang ditentukan.
    • ConditionKey: Kolom di setiap objek yang akan dievaluasi terhadap kondisi.
    • Operator: Operator yang akan digunakan untuk kondisi.
      • Untuk input string: =, !=, in, not in.
      • Untuk input angka/tanggal: =, !=, >, >=, < , <=.
  • Nilai: Nilai yang akan diperiksa dalam kondisi.
    Contoh: alerts | Filter("severity", "=", "HIGH") (Menampilkan semua pemberitahuan dengan kolom severity bernilai "HIGH")
  • DateFormat ("pattern") - Memformat tanggal dalam pola tertentu (pola ditentukan sebagai parameter) ke format berikut: YYYY-MM-DDThh:mm:ssZ.
    Contoh: timestamp_field | DateFormat("yyyy/MM/ddTHH:mm:ss") (Jika timestamp_field adalah "2024/07/20T10:00:00Z", fungsi ini akan menampilkan "2024-07-20 10:00:00")
  • Count (): Menampilkan jumlah item dalam array input.
    Contoh: alerts | Count() (Jika alerts adalah array dengan 4 elemen, fungsi ini akan menampilkan 4)
  • OrderBy ("keyPath", "direction"): Mengurutkan array objek berdasarkan nilai jalur kunci yang ditentukan.
    Contoh: alerts | OrderBy("score", "DESC") (Mengurutkan array alerts berdasarkan score dalam urutan menurun)
  • toLower (): Mengonversi input menjadi karakter huruf kecil.
    Contoh: status_field | toLower() (Jika status_field adalah "OPEN", fungsi ini akan menampilkan "open")
  • toUpper (): Mengonversi input menjadi karakter huruf besar.
    Contoh: severity_field | toUpper() (Jika severity_field adalah "high", fungsi ini akan menampilkan "HIGH")
  • Replace ("x", "y"): Mengganti substring dalam string dengan string lain.
    Contoh: message_field | Replace("World", "Universe") (Jika message_field adalah "Hello World", fungsi ini akan menampilkan "Hello Universe")
  • Distinct (): Menghapus nilai duplikat dari array. Untuk array objek, fungsi ini melakukan perbandingan mendalam untuk mengidentifikasi objek duplikat.
    Contoh: [10, 20, 30, 20, 40] | Distinct() (Menampilkan [10, 20, 30, 40])
  • getByIndex ("index"): Mendapatkan item array berdasarkan indeks yang ditentukan atau daftar indeks.
    Contoh: alerts | getByIndex("0") (Menampilkan elemen pertama dari array alerts)
    Contoh: alerts | getByIndex("0,2") (Menampilkan elemen pertama dan ketiga dari array alerts)
  • split ("delimiter"): Membagi string menjadi array substring, menggunakan pembatas yang ditentukan.
    Contoh: "tag1,tag2,tag3" | split(",") (Menampilkan ["tag1", "tag2", "tag3"])
  • join ("delimiter"): Menggabungkan array string menjadi satu string, menggunakan pembatas yang ditentukan.
    Contoh: ["malware", "critical"] | join(" & ") (Menampilkan "malware & critical")
  • trim (): Menghapus spasi kosong di awal dan akhir string.
    Contoh: " hello world " | trim() (Menampilkan "hello world")
  • trimChars ("characters"): Menghapus karakter yang ditentukan dari awal dan akhir string. Spasi kosong di awal dan akhir selalu dihapus, meskipun tidak ditentukan secara eksplisit.
    Contoh: "--TEST--ABC--" | trimChars("-") (Menampilkan "TEST--ABC")
  • substring (start, end): Mengekstrak substring dari string, menggunakan indeks awal yang ditentukan dan indeks akhir opsional.
    Contoh: "Hello World" | substring(0, 5) (Menampilkan "Hello")
    Contoh: "Hello World" | substring(6) (Menampilkan "World")
  • incrementValue (value): Meningkatkan nilai numerik dengan jumlah yang ditentukan. Jika tidak ada jumlah yang ditentukan, nilai akan bertambah 1.
    Contoh: score_field | incrementValue(5) (Jika score_field adalah 90, fungsi ini akan menampilkan 95)
    Contoh: counter_field | incrementValue() (Jika counter_field adalah 10, fungsi ini akan menampilkan 11)
  • setIfEmpty ("defaultValue"): Menampilkan nilai default yang diberikan jika nilai input kosong.
    Contoh: optional_field | setIfEmpty("N/A") (Jika optional_field kosong, fungsi ini akan menampilkan "N/A"; jika tidak, fungsi ini akan menampilkan nilai optional_field)
  • toUnixtime (): Mengonversi string tanggal dan waktu yang mudah dibaca (misalnya, "2014/03/12T13:37:27Z" atau "2014-03-12T13:37:27+01:00") ke stempel waktu Unix, yang dinyatakan dalam UTC.
    Contoh: "2024-07-20T10:00:00Z" | toUnixtime() (Menampilkan 1721469600)
  • ifThenElse ("operator", "comparedValue", "trueResult", "falseResult") - Mengevaluasi kondisi dan menampilkan ekspresi pertama jika benar, jika tidak, fungsi ini akan menampilkan ekspresi kedua.
    Contoh: severity_field | ifThenElse("=", "HIGH", "High Priority", "Normal Priority") (Jika severity_field adalah "HIGH", fungsi ini akan menampilkan "High Priority"; jika tidak, fungsi ini akan menampilkan "Normal Priority")
    Contoh: score_field | ifThenElse(">", "70", "Above Threshold", "Below Threshold") (Jika score_field adalah 90, fungsi ini akan menampilkan "Above Threshold"; jika score_field adalah 60, fungsi ini akan menampilkan "Below Threshold")

Ekspresi:

Kolom Ekspresi adalah tempat Anda menyisipkan hasil JSON bersama dengan fungsi dan pipe untuk menambahkan beberapa fungsi bersama-sama dan membuat ekspresi.

Jalankan / Hasil:

Setelah mengisi Pembuat Ekspresi, klik Jalankan untuk menampilkan Hasil berdasarkan Data Contoh JSON yang ditampilkan di Pembuat Ekspresi.

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.