Sintaksis kueri

Untuk menelusuri aset, Anda dapat memfilter hasil penelusuran dengan menentukan FIELD, operator, dan QUERY.

Operator pencocokan persis teks: sama dengan (=)

FIELD=QUERY

Contoh kuerinya adalah: policy=amy.2020@gmail.com.

Operator equals (=) memeriksa apakah QUERY sama persis dengan nilai metadata aset FIELD. Hal ini peka huruf besar/kecil. Untuk kolom berulang, jika QUERY cocok dengan salah satu nilai kolom, aset dianggap cocok. Nama FIELD yang didukung bergantung pada apakah kuerinya merupakan penelusuran resource atau penelusuran kebijakan Identity and Access Management (IAM). QUERY adalah frasa, tetapi tidak dapat berisi karakter pengganti.

Operator pencocokan sebagian teks: titik dua (:)

FIELD:QUERY

Contoh kuerinya adalah: policy:amy.2020@gmail.

Saat melakukan penelusuran, QUERY dibandingkan dengan nilai FIELD metadata aset yang ditentukan. Kueri dan kolom metadata aset dikonversi menjadi urutan kata (yaitu, token) untuk perbandingan. Hal ini dilakukan dengan:

  • Menghapus karakter khusus di awal/akhir dan membuat token nilai penelusuran dengan memperlakukan karakter khusus tersebut sebagai pembatas. Karakter khusus tokenisasi adalah karakter yang bukan salah satu dari [a-zA-Z0-9] alfanumerik, garis bawah [_], atau ampersand [&].

  • Melakukan pelipatan huruf besar/kecil Unicode sehingga huruf besar/kecil karakter diabaikan.

Berikut adalah beberapa contoh tokenisasi:

  • "amy-2020@GMAIL.com" ditokenkan menjadi: [amy,2020,gmail,com]

  • "google.com/cloud" ditokenkan menjadi: [google,com,cloud]

  • "Compute %Instance%" ditokenkan menjadi: [compute,instance]

  • "$%^*-!" ditokenkan menjadi: []

  • "" ditokenkan menjadi: []

  • "compute*storage" ditokenkan menjadi: [compute,storage]

  • "compute&storage" ditokenkan menjadi: [compute&storage]

  • "BOB_test@gmail.com" ditokenkan menjadi: [bob_test,gmail,com]

  • "instance/_my_vm_" ditokenkan menjadi: [instance,_my_vm_]

Operator has (:) memeriksa apakah setiap kata dari QUERY ada dalam nilai kolom metadata aset. Fungsi ini juga memeriksa urutan dan kelanjutan kata-kata. FIELD yang didukung dapat berbeda-beda, bergantung pada apakah itu penelusuran resource atau penelusuran kebijakan IAM. QUERY dapat berupa frasa atau kombinasi frasa.

Contoh

Misalnya, aset yang kolom policy-nya memiliki nilai amy.2020@gmail.com cocok dengan kueri berikut:

  • Cocok karena frasa sama persis dengan nilai kolom.
policy=amy.2020@gmail.com
  • Cocok karena karakter tanda baca diperlakukan sebagai pembatas, dan kueri tidak peka huruf besar/kecil.
policy:amy-2020@GMAIL.com
  • Cocok karena kata-kata dalam frasa dicocokkan secara berurutan. Perhatikan bahwa "amy 2020 gmail" adalah frasa; kata harus dicocokkan secara berurutan dan berurutan.
policy:"amy 2020 gmail"
  • Cocok karena kombinasi kata dapat muncul dalam urutan apa pun. Perhatikan bahwa (gmail 2020 amy) adalah kombinasi; kata-kata dicocokkan dan tidak harus berurutan.
policy:(gmail 2020 amy)
  • Cocok karena kata-kata dalam frasa dicocokkan dalam urutan dan kata-kata dalam kombinasi muncul dalam urutan apa pun. Perhatikan bahwa "amy 2020" adalah frasa dan kata-kata harus dicocokkan secara berurutan dan berurutan. (gmail "amy 2020") adalah kombinasi; gmail dan "amy 2020" dicocokkan dan tidak harus berurutan.
policy:(gmail "amy 2020")
  • Cocok karena * dapat digunakan dalam frasa untuk menunjukkan kecocokan awalan.
policy:amy-20*

Aset yang kolom policy-nya memiliki nilai "amy.2020@gmail.com" TIDAK cocok dengan kueri berikut:

  • Tidak cocok karena frasa peka huruf besar/kecil. Gunakan operator has (:) untuk pencocokan tidak peka huruf besar/kecil.
policy=amy.2020@GMAIL.com
  • Tidak cocok karena frasa cocok sebagian dengan nilai kolom. Sebagai gantinya, gunakan operator has (:) untuk pencocokan sebagian.
policy=amy.2020@gmail

Pencocokan numerik: operator perbandingan (=, >, >=, <, <=)

FIELD=QUERY

FIELD>QUERY

FIELD>=QUERY

FIELD<QUERY

FIELD<=QUERY

Operator perbandingan memeriksa apakah hasil perbandingan antara QUERY dan nilai metadata aset FIELD adalah benar.

Nama FIELD yang didukung mencakup createTime dan updateTime.

Untuk kolom stempel waktu (createTime dan updateTime), QUERY dapat berupa bilangan bulat dengan tanda tangan 64-bit, yang mewakili stempel waktu epoch dalam detik; atau string tanggal-waktu dalam salah satu format di bawah ini (zona waktu adalah UTC):

  • YYYY-MM-DD: 2021-01-01 (tanda kutip opsional)

  • "YYYY-MM-DDThh:mm:ss": "2021-01-01T00:00:00" (diperlukan tanda kutip)

Contoh

Misalnya, aset yang kolom createTime-nya memiliki nilai 1609459200 (stempel waktu epoch 2021-01-01T00:00:00) cocok dengan kueri berikut:

Sama dengan

createTime=1609459200
createTime=2021-01-01
createTime="2021-01-01T00:00:00"

Lebih dari.

createTime>1500000000
createTime>2020-01-01
createTime>"2020-01-01T00:00:00"

Lebih dari atau sama dengan.

createTime>=1609459200
createTime>=2021-01-01
createTime>="2021-01-01T00:00:00"

Kurang dari.

createTime<1700000000
createTime<2022-01-01
createTime<"2022-01-01T00:00:00"

Kurang dari atau sama dengan.

createTime<=1609459200
createTime<=2021-01-01
createTime<="2021-01-01T00:00:00"

Frasa

Frasa merupakan satu atau beberapa kata yang diapit tanda kutip ganda ("). Dengan frasa, urutan kata penting. Kata-kata dalam frasa tersebut harus cocok secara berurutan dan berurutan. Perhatikan bahwa untuk mencocokkan beberapa kata tanpa menghormati urutannya, Anda harus menggunakan kombinasi (misalnya, field:(word1 word2 word3)).

Ekspresi berikut sama:

policy:amy
policy:"amy"

policy:amy.2020@gmail.com
policy:"amy.2020@gmail.com"

name://cloudresourcemanager.googleapis.com/projects/projects/foo-bar
name:"//cloudresourcemanager.googleapis.com/projects/projects/foo-bar"

Frasa berikut harus diapit dengan tanda kutip:

name:"my instance"

policy:"amy%2020@gmail.com"

description:"domain:gmail.com"

description:"hello \"world\""

description:"hello\\world"

Contoh: frasa

  • Tampilkan aset yang kolom policy-nya memiliki kata amy dan kata 2020 secara berurutan dan berurutan:

    policy:"amy 2020"
    
  • Jika Anda memiliki aset yang nilai kolom policy-nya adalah "amy.2020@gmail.com", kueri di atas akan cocok.

  • Jika Anda memiliki aset yang nilai kolom policy-nya adalah "2020.amy@gmail.com", kueri di atas tidak akan cocok karena kata-katanya tidak dicocokkan secara berurutan.

  • Jika Anda memiliki aset yang nilai kolom policy-nya adalah "amy.us.2020@gmail.com", kueri di atas tidak cocok, karena kata-katanya tidak cocok secara berurutan.

Kombinasi

Frasa penelusuran dapat digabungkan menggunakan AND atau OR. Tanda kurung digunakan untuk mengelompokkan kombinasi.

Contoh: kombinasi

  • Menampilkan aset yang kolom policy-nya memiliki kata amy dan kata john, tanpa mengikuti urutannya. AND bersifat opsional dalam kombinasi. Perhatikan bahwa untuk mencocokkan beberapa kata secara berurutan, Anda harus menggunakan frasa (misalnya, field:"word1 word2 word3").

    owner:(amy john)
    
  • Tampilkan aset yang kolom policy-nya memiliki kata amy atau kata john.

    policy:(amy OR john)
    
  • Menampilkan aset yang kolom policy-nya memiliki kata amy dan kata john atau memiliki kata bob.

    policy:((amy john) OR bob)
    
  • Menampilkan aset yang kolom policy-nya memiliki kata amy dan kolom kata john atau name memiliki kata bob.

    policy:(amy john) OR name:bob
    

Menegasi filter penelusuran

Filter penelusuran dapat diabaikan menggunakan operator NOT. Tanda kurung didukung, tetapi tidak wajib.

Contoh: menegasikan filter penelusuran

  • Tampilkan aset yang kolom state-nya tidak berisi kata ACTIVE.

    NOT state:ACTIVE
    
  • Tampilkan aset yang kolom policy-nya tidak memiliki kata amy atau kata john.

    NOT policy:(amy OR john)
    
  • Menampilkan aset yang kolom networkTags-nya tidak berisi kata internal atau private.

    NOT (networkTags:internal OR networkTags:private)
    

Karakter pengganti

Tanda bintang (*) dapat digunakan dalam frasa sebagai karakter pengganti. Tergantung pada posisinya, istilah itu dapat memiliki arti yang berbeda.

  • Jika berada di akhir frasa, misalnya, "am 20*", itu adalah indikator kecocokan awalan token. Kueri ini setara dengan (am* 20*). Nilai ini cocok dengan kolom yang berisi token yang diawali dengan "am", misalnya, "amy", dan token yang dimulai dengan "20", misalnya, "2021". Urutan awalan tidak akan berpengaruh.

  • Jika seluruh frasa hanya berisi satu *, misalnya "labels.env:*", perintah ini akan melakukan pemeriksaan keberadaan. Parameter ini memeriksa apakah kunci label yang diberikan "env" ada atau tidak. Kolom lain tidak didukung.

  • Jika berada di tengah frasa, misalnya "compute*storage", karakter ini diperlakukan sebagai pembatas tokenisasi. Kueri ini setara dengan "komputasi penyimpanan".

  • Jika berada di awal dan akhir frasa, misalnya, "*compute storage*", ID ini diperlakukan sebagai pembatas tokenisasi. Kueri ini setara dengan "penyimpanan komputasi".

Contoh: pencocokan awalan token

  • Tampilkan aset yang kolom policy-nya berisi kata yang diawali dengan am:

    policy:am*
    
  • Menampilkan aset yang kolom policy-nya memiliki dua kata dengan "amy" dan "20" sebagai awalan:

    policy:"amy 20*"
    
    policy:"20 amy*"
    
  • Jika Anda memiliki aset yang nilai kolom policy-nya adalah "amy.2020@gmail.com", kueri di atas akan cocok. Setelah membuat token, "amy" dan "20" merupakan awalan. Perhatikan bahwa string kueri "amy 20*" berbeda dengan "amy 20". Kode yang kedua mengharuskan 20 berupa keseluruhan kata selain awalan.

Contoh: keberadaan kunci label

Menampilkan aset yang salah satu labels-nya memiliki "env" sebagai kunci dan memiliki nilai apa pun (termasuk nilai kosong atau tanpa nilai):

labels.env:*