Quando cerchi asset, puoi filtrare i risultati di ricerca specificando una query composta da un campo dei metadati dell'asset, un operatore e un valore.
Risorse e campi disponibili per la ricerca
Per i campi che puoi utilizzare in una query searchAllResources
, consulta
Campi ResourceSearchResult.
Per i campi che puoi utilizzare in una query searchAllIamPolicies
, consulta
Campi di IamPolicySearchResult.
Per le risorse che puoi cercare, consulta Tipi di risorse.
Corrispondenza del testo
Quando cerchi una corrispondenza del testo, puoi trovare una corrispondenza con un campo dei metadati della risorsa esattamente o parzialmente.
Corrispondenza esatta del testo
Per una corrispondenza esatta del testo, utilizza l'operatore =
(uguale) con la seguente
sintassi:
ASSET_METADATA_FIELD=QUERY
Ad esempio:
location=us-central1-a
Tieni presente le seguenti regole quando esegui una corrispondenza esatta del testo:
Affinché la query sia vera, il valore della query deve corrispondere esattamente al valore del campo dei metadati della risorsa.
Per un campo con un valore di elenco, se il valore della query corrisponde a uno degli elementi dell'elenco, viene considerata una corrispondenza.
I valori delle query sono sensibili alle maiuscole.
Un valore di query con corrispondenza esatta viene trattato come una frase, ma non può contenere sostituzioni.
Corrispondenza parziale del testo
Per una corrispondenza parziale del testo, utilizza l'operatore :
(contiene) con la seguente sintassi:
ASSET_METADATA_FIELD:QUERY
Ad esempio:
location:us-central1
Quando esegui una ricerca con l'operatore :
, il valore della query e i valori dei campi dei metadati della risorsa vengono convertiti in token per il confronto. Ogni parola del valore della query viene controllata per verificare se esiste in ordine consecutivo nel valore del campo dei metadati della risorsa. Quando utilizzi
le corrispondenze parziali, i valori delle query non distinguono tra maiuscole e minuscole.
I valori delle query con corrispondenza parziale possono essere frasi o combinazioni di frasi e possono contenere caratteri jolly. In una query è possibile effettuare fino a 10 confronti, con un massimo di 2048 caratteri. Se hai un caso d'uso per query più lunghe, contatta gcp-asset-inventory-and-search-feedback@googlegroups.com.
Regole di tokenizzazione
Le regole di tokenizzazione per la corrispondenza parziale del testo sono le seguenti:
I caratteri speciali iniziali e finali vengono rimossi.
I caratteri non alfanumerici (
[a-zA-Z0-9]
), i trattini bassi (_
) o gli "e commerciali" (&
) vengono trattati come delimitatori.
Ecco alcuni esempi di tokenizzazione:
us-central1
è tokenizzato in[us,central1]
alex-2020@EXAMPLE.com
è tokenizzato in[alex,2020,example,com]
google.com/cloud
è tokenizzato in[google,com,cloud]
Compute %Instance%
è tokenizzato in[compute,instance]
$%^*-!
è tokenizzato in[]
compute*storage
è tokenizzato in[compute,storage]
compute&storage
è tokenizzato in[compute&storage]
ALEX_test@example.com
è tokenizzato in[alex_test,example,com]
instance/_my_vm_
è tokenizzato in[instance,_my_vm_]
Esempi di corrispondenza del testo esatta e parziale
Una risorsa il cui campo location
ha il valore us-central1-a
corrisponde alle seguenti query.
Query | Motivo della corrispondenza |
---|---|
location=us-central1-a |
Corrisponde perché la frase us-central1-a è
esattamente uguale al valore del campo.
|
location:US-Central1-A |
Trova la corrispondenza perché i caratteri di punteggiatura vengono considerati come delimitatori e il valore della query è senza distinzione tra maiuscole e minuscole. |
location:"us central1 a" |
Corrispondenze perché le parole nella frase "us central1 a"
corrispondono al valore del campo in ordine consecutivo.
|
location:(central1 us a) |
Corrispondenze perché le parole nella combinazione
(central1 us a) corrispondono alle parole nel valore del campo in
qualsiasi ordine.
|
location:(a "us central1") |
Corrisponde perché le frasi all'interno della combinazione,
a e "us central1" , corrispondono alle parole nel
valore del campo in qualsiasi ordine. Poiché "us central1" è una frase, queste parole devono essere associate in ordine consecutivo.
|
location:us-central* |
Corrisponde perché il carattere jolly * viene utilizzato per creare una corrispondenza con il prefisso.
|
Una risorsa il cui campo location
ha il valore us-central1-a
non corrisponde alle seguenti query.
Query | Motivo della mancata corrispondenza |
---|---|
location=US-central1-a |
Non corrisponde perché la frase è sensibile alle maiuscole. Utilizza invece l'operatore
: per le corrispondenze senza distinzione tra maiuscole e minuscole.
|
location=us-central1 |
Non corrisponde perché la frase corrisponde parzialmente al valore del campo.
Utilizza invece l'operatore : per le corrispondenze parziali.
|
Creare una query di corrispondenza del testo
Un valore di query può essere composto da frasi, combinazioni, negazioni e caratteri jolly.
Frasi
Una frase è costituita da una o più parole che corrispondono in ordine. Per trovare corrispondenze tra parole senza rispettare l'ordine, utilizza le combinazioni.
La seguente query corrisponde alle risorse il cui campo policy
contiene la parola alex
e la parola 2020
in ordine consecutivo:
policy:"alex 2020"
Una risorsa il cui valore del campo policy
è "alex.2020@example.com"
corrisponde alla query, perché le parole alex
e 2020
sono in ordine consecutivo. .
viene ignorato perché la punteggiatura viene considerata come delimitatore.
Una risorsa il cui valore del campo policy
è "2020.alex@example.com"
o
"alex.us.2020@example.com"
non corrisponde, perché le parole alex
e 2020
non sono in ordine consecutivo.
Creare una frase
Tieni presente le seguenti regole quando costruisci una frase:
Se la frase contiene solo caratteri dell'alfabeto latino di base ISO
[a-zA-Z]
, numeri[0-9]
, connettori di email o URL di base[_-+.@/&]
o caratteri jolly[*]
, non è necessario racchiuderla tra virgolette doppie:policy:alex.2020@example.com
Tuttavia, l'inserimento tra virgolette doppie continua a funzionare e si comporta allo stesso modo:
policy:"alex.2020@example.com"
Se la frase contiene spazi o altri caratteri speciali, deve essere racchiusa tra virgolette doppie:
location:"us central1"
Se la frase è racchiusa tra virgolette doppie e contiene anche una virgoletta doppia (
"
) o una barra rovesciata (\
), devi eseguire l'escape come\"
o\\
. In alternativa, sostituiscili con un singolo spazio, poiché i caratteri non alfanumerici vengono trattati come delimitatori durante l'esecuzione di una ricerca. Le seguenti query vengono trattate allo stesso modo:description:"One of \"those\" descriptions." description:"One of those descriptions."
Quando utilizzi l'interfaccia a riga di comando gcloud o l'API REST, devi eseguire la fuga dalle doppie virgolette utilizzate per indicare una frase:
--query="location:(a \"us central1\")"
"query": "location:(a \"us central1\")"
Combinazioni
Le frasi di ricerca possono essere combinate utilizzando gli operatori logici in maiuscolo AND
o
OR
. L'inclusione di AND
è facoltativa quando si utilizzano le parentesi. Ad esempio, le seguenti query vengono trattate allo stesso modo:
policy:(alex charlie)
policy:(alex AND charlie)
Se una risorsa contiene un campo dei metadati con un elenco di valori, una combinazione AND
non garantisce che tutte le parole debbano trovarsi in un singolo elemento. Ad esempio, se un campo dei metadati è policy=["alex@example.com", "bola@example.com", "charlie@example.com"]
, la ricerca con policy:(alex charlie)
genera corrispondenze perché alex@example.com
contiene alex
e charlie@example.com
contiene charlie
.
Puoi utilizzare le parentesi per raggruppare i tipi di combinazioni. L'esempio seguente
restituisce le risorse con un campo criterio contenente alex
e charlie
in qualunque ordine o le risorse con un campo criterio contenente bola
.
policy:((alex charlie) OR bola)
Puoi utilizzare una frase all'interno di una combinazione per trovare corrispondenze con più parole in ordine consecutivo. L'esempio seguente restituisce gli asset con un campo delle norme che contiene alex
e 2020
in ordine consecutivo o bola
:
policy:(("alex 2020") OR bola)
Esempi di combinazioni
Le seguenti query mostrano varie combinazioni. Prendi nota del posizionamento
delle parentesi per separare gli operatori AND
e OR
. La combinazione di operatori all'interno di un unico insieme di parentesi non è valida, ad esempio:policy:(alex charlie OR bola)
.
Query | Descrizione |
---|---|
policy:(alex charlie) |
Restituisce gli asset il cui campo policy contiene sia alex sia charlie .
|
policy:(alex OR charlie) |
Restituisce gli asset il cui campo policy contiene
alex o charlie .
|
policy:((alex charlie) OR bola) |
Restituisce gli asset il cui campo policy contiene sia
alex che charlie oppure la parola
bola .
|
policy:(alex charlie) OR name:bola |
Restituisce gli asset il cui campo policy contiene alex e charlie o il cui campo name contiene bola .
|
Negazione
Le query di ricerca possono essere negate utilizzando l'operatore NOT
in maiuscolo. Le parentesi
sono supportate, ma non obbligatorie.
Esempi di negazione
Restituisce gli asset il cui campo
state
non contiene la parolarunning
.NOT state:running
Restituisce le risorse il cui campo
policy
non contiene néalex
nécharlie
.NOT policy:(alex OR charlie)
Restituisce le risorse il cui campo
networkTags
non contieneinternal
oprivate
.NOT (networkTags:internal OR networkTags:private)
Caratteri jolly
Gli asterischi (*
) possono essere utilizzati in una frase come carattere jolly. A seconda della posizione, un asterisco può avere significati diversi.
Se
*
si trova alla fine di una frase, viene trattata come una corrispondenza del prefisso del token. Ad esempio,"al 20*"
è equivalente a(al* 20*)
. L'ordine dei prefissi non è importante.La frase
"al 20*"
corrisponde a un valore di campo con un token che inizia conal
(ad es.alex
) e un token che inizia con20
(ad es.2020
).Per
labels
, se l'intero valore della query contiene un solo*
, ad esempio"labels.env:*"
, rappresenta un controllo di esistenza. In altre parole, Cloud Asset Inventory controlla se esiste la chiave dell'etichettaenv
. Solo il campolabels
supporta i controlli di esistenza.Se
*
si trova al centro di una frase, ad esempio"compute*storage"
, viene trattato come delimitatore della tokenizzazione. Questo valore di query è equivalente a"compute storage"
.Se
*
si trova sia all'inizio che alla fine di una frase, ad esempio"*compute storage*"
, viene trattato come delimitatore di tokenizzazione. Questo valore della query è equivalente a"compute storage"
.
Confronto tra valori numerici e timestamp
Per il confronto di valori numerici e timestamp, utilizza gli operatori di confronto con la seguente sintassi:
ASSET_METADATA_FIELD>=QUERY
Gli operatori di confronto disponibili sono i seguenti:
=
: uguale a>
: maggiore di>=
: maggiore o uguale a<
: minore di<=
: minore o uguale a
Per il confronto con i timestamp, ad esempio quelli memorizzati nei campi dei metadati delle risorse createTime
e
updateTime
, utilizza un numero intero con segno a 64 bit (il
timestamp epoch in secondi) o una stringa data/ora UTC+0 in uno dei seguenti formati:
2021-01-01
(AAAA-MM-GG)"2021-01-01T00:00:00"
("YYYY-MM-DDThh:mm:ss")
Esempi di date e ore
Una risorsa il cui campo createTime
ha il valore 1609459200
(timestamp epoch di
2021-01-01T00:00:00
) corrisponde alle seguenti query:
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"