Membangun logika dengan Pembuat Ekspresi
Expression Builder 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 Expression Builder
Contoh ini menunjukkan potensi data dan tidak mencerminkan hasil real-time. Data sebenarnya mungkin berbeda dan dapat berisi lebih banyak atau lebih sedikit kolom. Jika mengetahui kolom tambahan yang akan ditampilkan saat runtime, analis dapat memasukkan jalur kunci yang sesuai di kolom sintaksis.
Fungsi
Fungsi pipe berikut didukung:
- Pertama (x): Menampilkan X elemen pertama dari sebuah array.
Contoh:alerts | First(2)(Jikaalertsadalah[{"id": "A"}, {"id": "B"}, {"id": "C"}], akan menampilkan[{"id": "A"}, {"id": "B"}]) - Terakhir (x): Menampilkan X elemen terakhir dari sebuah array.
Contoh:alerts | Last(1)(Jikaalertsadalah[{"id": "A"}, {"id": "B"}, {"id": "C"}], akan menampilkan[{"id": "C"}]) - Min (KeyPath): Menampilkan item dengan nilai minimum dari array. Jika parameter keyPath diberikan, parameter tersebut akan menampilkan objek dengan nilai minimum di jalur yang ditentukan.
Contoh:alerts | Min("score")(Jikaalertsberisi daftar objek dengan kolomscore, menampilkan objek dengan skor terendah) - Max (KeyPath): Menampilkan item dengan nilai maksimum dari array. Jika parameter keyPath diberikan, metode ini akan menampilkan objek dengan nilai maksimum pada jalur yang ditentukan.
Contoh:alerts | Max("score")(Jikaalertsberisi daftar objek dengan kolomscore, menampilkan objek dengan skor tertinggi) - Filter (ConditionKey, Operator, Value): Memfilter array objek, hanya menampilkan objek yang cocok dengan kondisi pada kolom tertentu.
- ConditionKey: Kolom di setiap objek yang akan dievaluasi berdasarkan 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 yang kolomseverity-nya adalah "TINGGI") -
dateFormat ("pola") - Memformat string tanggal. Gunakan parameter pola untuk mendeskripsikan format string tanggal input Anda. Fungsi ini menstandardisasi tanggal ke format berikut:
YYYY-MM-DD hh:mm:ss.
Contoh:timestamp_field | dateFormat("yyyy/MM/ddTHH:mm:ss")(Jikatimestamp_fieldadalah "2024/07/20T10:00:00Z", menampilkan "2024-07-20 10:00:00")Token pola yang didukung:
- Tahun:
yyyy(4 digit),yy(2 digit),y(1 atau 2 digit). - Bulan:
MM(01-12),M(1-12),MMMM(nama lengkap),MMM(singkatan). - Hari:
dd(01-31),d(1-31),dddd(nama hari lengkap),ddd(singkatan). - Jam:
HH(24 jam, 00-23),H(24 jam, 0-23),hh(12 jam, 01-12),h(12 jam, 1-12). - Menit:
mm(00-59),m(0-59). - Detik:
ss(00-59),s(0-59). - Detik pecahan:
fffatauFFF. - Zona Waktu:
zzz(misalnya,-08:00),zz,z. - AM/PM:
tt(AM/PM),t(A/P).
- Tahun:
-
Count (): Menampilkan jumlah item dalam array input.
Contoh:alerts | Count()(Jikaalertsadalah array dengan 4 elemen, akan menampilkan 4) -
OrderBy ("keyPath", "direction"): Mengurutkan array objek berdasarkan nilai jalur kunci yang ditentukan.
Contoh:alerts | OrderBy("score", "DESC")(Mengurutkan arrayalertsmenurutscoredalam urutan menurun) -
toLower (): Mengonversi input menjadi karakter huruf kecil.
Contoh:status_field | toLower()(Jikastatus_fieldadalah "OPEN", akan menampilkan "open") -
toUpper (): Mengonversi input menjadi karakter huruf besar.
Contoh:severity_field | toUpper()(Jikaseverity_fieldadalah "high", menampilkan "HIGH") -
Replace ("x", "y"): Mengganti substring dalam string dengan string lain.
Contoh:message_field | Replace("World", "Universe")(Jikamessage_fieldadalah "Hello World", akan menampilkan "Hello Universe") -
Distinct (): Menghapus nilai duplikat dari array. Untuk array objek, 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 tertentu atau daftar indeks.
Contoh:alerts | getByIndex("0")(Menampilkan elemen pertama dari arrayalerts)
Contoh:alerts | getByIndex("0,2")(Menampilkan elemen pertama dan ketiga dari arrayalerts) -
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 dari string.
Contoh:" hello world " | trim()(Menampilkan "halo dunia") -
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): Menambah nilai numerik sebesar jumlah yang ditentukan. Jika tidak ada jumlah yang ditentukan, nilai akan ditambah 1.
Contoh:score_field | incrementValue(5)(Jikascore_fieldadalah 90, akan menampilkan 95)
Contoh:counter_field | incrementValue()(Jikacounter_fieldadalah 10, akan menampilkan 11) -
setIfEmpty ("defaultValue"): Menampilkan nilai default yang diberikan jika nilai input kosong.
Contoh:optional_field | setIfEmpty("N/A")(Jikaoptional_fieldkosong, menampilkan "N/A"; jika tidak, menampilkan nilaioptional_field) -
toUnixtime (): Mengonversi string tanggal dan waktu yang mudah dibaca (misalnya, "2014/03/12T13:37:27Z" atau "2014-03-12T13:37:27+01:00") menjadi 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, atau menampilkan ekspresi kedua jika salah.
Contoh:severity_field | ifThenElse("=", "HIGH", "High Priority", "Normal Priority")(Jikaseverity_fieldadalah "HIGH", menampilkan "Prioritas Tinggi"; jika tidak, menampilkan "Prioritas Normal")
Contoh:score_field | ifThenElse(">", "70", "Above Threshold", "Below Threshold")(Jikascore_fieldadalah 90, menampilkan "Di Atas Nilai Minimum"; jikascore_fieldadalah 60, menampilkan "Di Bawah Nilai Minimum")
Ekspresi
Kolom Expression adalah tempat Anda memasukkan hasil JSON bersama dengan fungsi dan pipe untuk menggabungkan beberapa fungsi dan membuat ekspresi.
Jalankan / Hasil
Setelah mengisi Expression Builder, klik Run untuk menampilkan Hasil berdasarkan Data Sampel JSON yang ditampilkan di Expression Builder.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.