Saat menelusuri aset, Anda dapat memfilter hasil penelusuran dengan menentukan kueri yang terdiri dari kolom metadata aset, operator, dan nilai.
Kolom dan resource yang dapat ditelusuri
Untuk kolom yang dapat Anda gunakan dalam kueri searchAllResources, lihat
Kolom ResourceSearchResult.
Untuk kolom yang dapat Anda gunakan dalam kueri searchAllIamPolicies, lihat
Kolom IamPolicySearchResult.
Untuk resource yang dapat Anda telusuri, lihat Jenis resource.
Pencocokan teks
Saat menelusuri kecocokan teks, Anda dapat mencocokkan kolom metadata aset persis atau sebagian.
Pencocokan teks persis
Untuk pencocokan teks persis, gunakan operator = (sama dengan) dengan sintaksis
berikut:
ASSET_METADATA_FIELD=QUERY
Contoh:
location=us-central1-a
Perhatikan aturan berikut saat melakukan pencocokan teks persis:
Agar kueri bernilai benar, nilai kueri harus sama persis dengan nilai kolom metadata aset.
Untuk kolom dengan nilai daftar, jika nilai kueri cocok dengan salah satu elemen daftar, maka dianggap cocok.
Nilai kueri peka huruf besar/kecil.
Nilai kueri pencocokan persis diperlakukan seperti frasa, tetapi tidak boleh berisi karakter pengganti.
Pencocokan teks parsial
Untuk pencocokan teks parsial, gunakan operator : (memiliki) dengan sintaksis berikut:
ASSET_METADATA_FIELD:QUERY
Contoh:
location:us-central1
Saat melakukan penelusuran dengan operator :, nilai kueri dan nilai kolom metadata aset akan dikonversi menjadi token untuk perbandingan. Setiap kata dari nilai kueri diperiksa untuk mengetahui apakah kata tersebut ada
dalam urutan berurutan di nilai kolom metadata aset. Saat menggunakan
pencocokan parsial, nilai kueri tidak peka huruf besar/kecil.
Nilai kueri kecocokan parsial dapat berupa frasa atau kombinasi frasa, dan dapat berisi wildcard. Hingga 10 perbandingan dapat dilakukan dalam satu kueri, dengan maksimum 2.048 karakter. Jika Anda memiliki kasus penggunaan untuk kueri yang lebih panjang, hubungi gcp-asset-inventory-and-search-feedback@googlegroups.com.
Aturan tokenisasi
Aturan tokenisasi untuk pencocokan teks parsial adalah sebagai berikut:
Karakter khusus di awal dan di akhir dihapus.
Karakter yang bukan alfanumerik (
[a-zA-Z0-9]), garis bawah (_), atau ampersand (&) diperlakukan sebagai pembatas.
Berikut beberapa contoh tokenisasi:
us-central1di-tokenisasi menjadi[us,central1]alex-2020@EXAMPLE.comdi-tokenisasi menjadi[alex,2020,example,com]google.com/clouddi-tokenisasi menjadi[google,com,cloud]Compute %Instance%di-tokenisasi menjadi[compute,instance]$%^*-!di-tokenisasi menjadi[]compute*storagedi-tokenisasi menjadi[compute,storage]compute&storagedi-tokenisasi menjadi[compute&storage]ALEX_test@example.comdi-tokenisasi menjadi[alex_test,example,com]instance/_my_vm_di-tokenisasi menjadi[instance,_my_vm_]
Contoh pencocokan teks persis dan sebagian
Aset yang kolom location-nya memiliki nilai us-central1-a cocok dengan
kueri berikut.
| Kueri | Alasan kecocokan |
|---|---|
location=us-central1-a |
Cocok karena frasa us-central1-a sama persis dengan nilai kolom.
|
location:US-Central1-A |
Cocok karena karakter tanda baca diperlakukan sebagai pembatas, dan nilai kueri tidak peka huruf besar/kecil. |
location:"us central1 a" |
Cocok karena kata-kata dalam frasa "us central1 a"
cocok dengan nilai kolom dalam urutan berurutan.
|
location:(central1 us a) |
Cocok karena kata-kata dalam kombinasi
(central1 us a) cocok dengan kata-kata dalam nilai kolom dalam
urutan apa pun.
|
location:(a "us central1") |
Cocok karena frasa di dalam kombinasi,
a dan "us central1", cocok dengan kata-kata dalam
nilai kolom dalam urutan apa pun. Karena "us central1" adalah
frasa, kata-kata ini harus dicocokkan dalam urutan berurutan.
|
location:us-central* |
Cocok karena karakter pengganti * digunakan untuk membuat kecocokan
awalan.
|
Aset yang kolom location-nya memiliki nilai us-central1-a tidak cocok dengan kueri berikut.
| Kueri | Alasan tidak cocok |
|---|---|
location=US-central1-a |
Tidak cocok karena frasa peka huruf besar/kecil. Gunakan operator
: sebagai gantinya untuk kecocokan yang tidak peka huruf besar/kecil.
|
location=us-central1 |
Tidak cocok karena frasa cocok sebagian dengan nilai kolom.
Gunakan operator : untuk pencocokan parsial.
|
Membuat kueri pencocokan teks
Nilai kueri dapat terdiri dari frasa, kombinasi, negasi, dan karakter pengganti.
Frasa
Frasa adalah satu kata atau lebih yang dicocokkan secara berurutan. Untuk mencocokkan kata tanpa memperhatikan urutan, gunakan kombinasi.
Kueri berikut cocok dengan aset yang kolom policy-nya memiliki kata alex
dan kata 2020 secara berurutan:
policy:"alex 2020"
Aset yang nilai kolom policy-nya adalah "alex.2020@example.com" cocok dengan
kueri, karena kata alex dan 2020 berada dalam urutan berurutan. . diabaikan karena tanda baca diperlakukan sebagai pembatas.
Aset yang nilai kolom policy-nya adalah "2020.alex@example.com" atau
"alex.us.2020@example.com" tidak cocok, karena kata alex dan 2020
tidak berurutan.
Menyusun frasa
Perhatikan aturan berikut saat Anda menyusun frasa:
Jika frasa hanya berisi karakter alfabet Latin dasar ISO
[a-zA-Z], angka[0-9], penghubung email atau URL dasar[_-+.@/&], atau karakter pengganti[*], frasa tersebut tidak perlu diapit tanda petik ganda:policy:alex.2020@example.comNamun, mengapit dalam tanda kutip ganda masih berfungsi, dan berperilaku sama:
policy:"alex.2020@example.com"Jika frasa memiliki spasi atau karakter khusus lainnya, frasa tersebut harus diapit dengan tanda petik ganda:
location:"us central1"Jika frasa diapit tanda kutip ganda dan juga berisi tanda kutip ganda (
") atau garis miring terbalik (\), Anda harus melakukan escape sebagai\"atau\\. Atau, ganti dengan satu spasi karena karakter non-alfanumerik diperlakukan sebagai pembatas saat melakukan penelusuran. Kueri berikut diperlakukan sama:description:"One of \"those\" descriptions." description:"One of those descriptions."Saat menggunakan gcloud CLI atau REST API, Anda perlu melakukan escape pada tanda kutip ganda yang digunakan untuk menunjukkan frasa:
--query="location:(a \"us central1\")""query": "location:(a \"us central1\")"
Kombinasi
Frasa penelusuran dapat digabungkan menggunakan operator logis huruf besar AND atau
OR. Penyertaan AND bersifat opsional saat menggunakan tanda kurung. Misalnya, kueri berikut diperlakukan sama:
policy:(alex charlie)
policy:(alex AND charlie)
Jika aset berisi kolom metadata dengan daftar nilai, kombinasi AND tidak menjamin bahwa semua kata harus berada dalam satu elemen. Misalnya, jika kolom metadata adalah policy=["alex@example.com", "bola@example.com", "charlie@example.com"], penelusuran dengan policy:(alex charlie) akan cocok, karena alex@example.com berisi alex, dan charlie@example.com berisi charlie.
Anda dapat menggunakan tanda kurung untuk mengelompokkan jenis kombinasi. Contoh berikut menampilkan aset yang memiliki kolom kebijakan yang berisi alex dan charlie dalam urutan apa pun, atau aset yang memiliki kolom kebijakan yang berisi bola.
policy:((alex charlie) OR bola)
Anda dapat menggunakan frasa di dalam kombinasi untuk mencocokkan beberapa kata dalam urutan
berurutan. Contoh berikut menampilkan aset yang memiliki kolom kebijakan yang berisi alex dan 2020 dalam urutan berurutan, atau bola:
policy:(("alex 2020") OR bola)
Contoh kombinasi
Kueri berikut menunjukkan berbagai kombinasi. Perhatikan penempatan
tanda kurung untuk memisahkan operator AND dan OR. Menggabungkan operator dalam
satu set tanda kurung tidak valid, misalnya:
policy:(alex charlie OR bola).
| Kueri | Deskripsi |
|---|---|
policy:(alex charlie) |
Menampilkan aset yang kolom policy-nya berisi
alex dan charlie.
|
policy:(alex OR charlie) |
Menampilkan aset yang kolom policy-nya berisi
alex atau charlie.
|
policy:((alex charlie) OR bola) |
Menampilkan aset yang kolom policy-nya berisi
alex dan charlie, atau memiliki kata
bola.
|
policy:(alex charlie) OR name:bola |
Menampilkan aset yang kolom policy-nya berisi
alex dan charlie atau yang kolom name-nya
berisi bola.
|
Negasi
Kueri penelusuran dapat dinegasi menggunakan operator NOT huruf besar. Tanda kurung
didukung, tetapi tidak wajib.
Contoh negasi
Menampilkan aset yang kolom
state-nya tidak berisi katarunning.NOT state:runningMenampilkan aset yang kolom
policy-nya tidak berisialexmaupuncharlie.NOT policy:(alex OR charlie)Menampilkan aset yang kolom
networkTags-nya tidak berisiinternalatauprivate.NOT (networkTags:internal OR networkTags:private)
Karakter pengganti
Tanda bintang (*) dapat digunakan dalam frasa sebagai karakter pengganti. Bergantung pada posisinya, tanda bintang dapat memiliki arti yang berbeda.
Jika
*berada di akhir frasa, itu diperlakukan sebagai kecocokan awalan token. Misalnya,"al 20*"setara dengan(al* 20*). Urutan awalan tidak menjadi masalah.Frasa
"al 20*"cocok dengan nilai kolom dengan token yang diawali denganal(sepertialex), dan token yang diawali dengan20(seperti2020).Untuk
labels, jika seluruh nilai kueri hanya berisi satu*—misalnya,"labels.env:*"—hal ini menunjukkan pemeriksaan keberadaan. Artinya, Inventaris Aset Cloud memeriksa apakah kunci labelenvada. Hanya kolomlabelsyang mendukung pemeriksaan keberadaan.Jika
*berada di tengah frasa—misalnya,"compute*storage"—maka akan diperlakukan sebagai pembatas tokenisasi. Nilai kueri ini setara dengan"compute storage".Jika
*berada di awal dan akhir frasa, misalnya,"*compute storage*", maka akan diperlakukan sebagai pembatas tokenisasi. Nilai kueri ini setara dengan"compute storage".
Perbandingan numerik dan stempel waktu
Untuk perbandingan numerik dan stempel waktu, gunakan operator perbandingan dengan sintaksis berikut:
ASSET_METADATA_FIELD>=QUERY
Operator perbandingan yang tersedia adalah sebagai berikut:
=: sama dengan>: lebih besar dari>=: lebih besar dari atau sama dengan<: kurang dari<=: kurang dari atau sama dengan
Untuk membandingkan dengan stempel waktu seperti yang disimpan di kolom metadata aset createTime dan updateTime, gunakan bilangan bulat bertanda 64-bit (stempel waktu epoch dalam detik) atau string tanggal dan waktu UTC+0 dalam salah satu format berikut:
2021-01-01(YYYY-MM-DD)"2021-01-01T00:00:00"("YYYY-MM-DDThh:mm:ss")
Contoh tanggal dan waktu
Aset yang kolom createTime-nya memiliki nilai 1609459200 (stempel waktu epoch
2021-01-01T00:00:00) cocok dengan kueri berikut:
createTime=1609459200
createTime=2021-01-01
createTime="2021-01-01T00:00:00"
createTime>1500000000
createTime>2020-01-01
createTime>"2020-01-01T00:00:00"
createTime>=1609459200
createTime>=2021-01-01
createTime>="2021-01-01T00:00:00"
createTime<1700000000
createTime<2022-01-01
createTime<"2022-01-01T00:00:00"
createTime<=1609459200
createTime<=2021-01-01
createTime<="2021-01-01T00:00:00"