Saat menelusuri aset, Anda dapat memfilter hasil penelusuran dengan menentukan kueri yang terdiri dari kolom metadata aset, operator, dan nilai.
Kolom dan referensi 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, nilai tersebut dianggap cocok.
Nilai kueri peka huruf besar/kecil.
Nilai kueri pencocokan persis diperlakukan seperti frasa, tetapi tidak boleh berisi karakter pengganti.
Pencocokan teks sebagian
Untuk pencocokan teks parsial, gunakan operator :
(has) dengan sintaksis berikut:
ASSET_METADATA_FIELD:QUERY
Contoh:
location:us-central1
Saat melakukan penelusuran dengan operator :
, nilai kueri dan nilai kolom metadata
aset
dikonversi menjadi token
untuk perbandingan. Setiap kata dari nilai kueri diperiksa untuk mengetahui apakah kata tersebut ada
dalam urutan berturut-turut dalam nilai kolom metadata aset. Saat menggunakan pencocokan sebagian, nilai kueri tidak peka huruf besar/kecil.
Nilai kueri pencocokan sebagian dapat berupa frasa atau kombinasi frasa, dan dapat berisi karakter pengganti. Hingga 10 perbandingan dapat dilakukan dalam 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 sebagian 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-central1
ditokenkan ke[us,central1]
alex-2020@EXAMPLE.com
ditokenkan ke[alex,2020,example,com]
google.com/cloud
ditokenkan ke[google,com,cloud]
Compute %Instance%
ditokenkan ke[compute,instance]
$%^*-!
ditokenkan ke[]
compute*storage
ditokenkan ke[compute,storage]
compute&storage
ditokenkan ke[compute&storage]
ALEX_test@example.com
ditokenkan ke[alex_test,example,com]
instance/_my_vm_
ditokenkan ke[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 pencocokan |
---|---|
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 pemisah, dan nilai kueri tidak peka huruf besar/kecil. |
location:"us central1 a" |
Cocok karena kata dalam frasa "us central1 a" cocok dengan nilai kolom dalam urutan berturut-turut.
|
location:(central1 us a) |
Cocok karena kata dalam kombinasi
(central1 us a) cocok dengan 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 pencocokan
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. Sebagai gantinya, gunakan operator : untuk pencocokan yang tidak peka huruf besar/kecil.
|
location=us-central1 |
Tidak cocok karena frasa sebagian cocok dengan nilai kolom.
Sebagai gantinya, gunakan operator : untuk pencocokan sebagian.
|
Membuat kueri kecocokan teks
Nilai kueri dapat terdiri dari frasa, kombinasi, negasi, dan karakter pengganti.
Frasa
Frasa adalah satu atau beberapa kata yang dicocokkan secara berurutan. Untuk mencocokkan kata tanpa menghormati urutan, gunakan kombinasi.
Kueri berikut mencocokkan aset yang kolom policy
-nya memiliki kata alex
dan kata 2020
dalam urutan berturut-turut:
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 berturut-turut. .
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.
Membuat frasa
Perhatikan aturan berikut saat Anda membuat frasa:
Jika frasa hanya berisi karakter alfabet Latin dasar ISO
[a-zA-Z]
, angka[0-9]
, konektor email atau URL dasar[_-+.@/&]
, atau karakter pengganti[*]
, frasa tersebut tidak perlu diapit tanda petik ganda:policy:alex.2020@example.com
Namun, mengapit dengan 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 dalam tanda petik ganda:
location:"us central1"
Jika frasa diapit tanda kutip ganda dan juga berisi tanda kutip ganda (
"
) atau garis miring terbalik (\
), Anda harus meng-escape-nya 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 meng-escape 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
. Menyertakan 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 kumpulan 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 kolom name -nya
berisi bola .
|
Negasi
Kueri penelusuran dapat dinegasikan menggunakan operator NOT
huruf besar. Tanda kurung
didukung, tetapi tidak wajib.
Contoh negasi
Menampilkan aset yang kolom
state
-nya tidak berisi katarunning
.NOT state:running
Menampilkan aset yang kolom
policy
-nya tidak berisialex
ataucharlie
.NOT policy:(alex OR charlie)
Menampilkan aset yang kolom
networkTags
-nya tidak berisiinternal
atauprivate
.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,
*
akan diperlakukan sebagai pencocokan awalan token. Misalnya,"al 20*"
setara dengan(al* 20*)
. Urutan awalan tidak penting.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:*"
—nilai tersebut mewakili pemeriksaan eksistensi. Artinya, Inventaris Aset Cloud memeriksa apakah kunci labelenv
ada. Hanya kolomlabels
yang mendukung pemeriksaan keberadaan.Jika
*
berada di tengah frasa—misalnya,"compute*storage"
—*
akan diperlakukan sebagai pemisah tokenisasi. Nilai kueri ini setara dengan"compute storage"
.Jika
*
berada di awal dan akhir frasa, misalnya,"*compute storage*"
,*
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"