Sintassi delle query

Per cercare risorse, puoi filtrare i risultati di ricerca specificando una FIELD, un operatore e un QUERY.

Corrispondenza esatta del testo: operatore è uguale a (=)

FIELD=QUERY

Una query di esempio è: policy=amy.2020@gmail.com.

L'operatore equals (=) controlla esattamente che QUERY corrisponda al valore dei metadati della risorsa FIELD. È sensibile alle maiuscole. Per un campo ripetuto, se QUERY corrisponde uno dei valori del campo, la risorsa viene considerata una corrispondenza. Lo strumento I nomi di FIELD dipendono dal fatto che la query sia o meno una risorsa o una ricerca con i criteri IAM (Identity and Access Management). La QUERY è una frase, ma non può contenere caratteri jolly.

Corrispondenza parziale del testo: operatore dei due punti (:)

FIELD:QUERY

Una query di esempio è: policy:amy.2020@gmail.

Quando esegui una ricerca, il valore QUERY viene confrontato con dei metadati della risorsa specificati FIELD. La query e i campi dei metadati delle risorse vengono convertiti in una sequenza di parole (ovvero di token) per il confronto. Per farlo:

  • Rimuovere i caratteri speciali iniziali/finali e la tokenizzazione del valore di ricerca trattando i caratteri speciali come delimitatori. Lo speciale tokenizzazione sono i caratteri che non sono un valore alfanumerico [a-zA-Z0-9], trattino basso [_] o e commerciale [&].

  • È in corso la piegatura delle maiuscole Unicode per ignorare l'uso di maiuscole e minuscole.

Ecco alcuni esempi di tokenizzazione:

  • "amy-2020@GMAIL.com" è tokenizzato in: [amy,2020,gmail,com]

  • "google.com/cloud" è tokenizzato in: [google,com,cloud]

  • "Compute %Instance%" viene tokenizzato in: [compute,instance]

  • "$%^*-!" è tokenizzato in: []

  • "" è tokenizzato in: []

  • "compute*storage" è tokenizzato in: [compute,storage]

  • "compute&storage" è tokenizzato in: [compute&storage]

  • "BOB_test@gmail.com" è tokenizzato in: [bob_test,gmail,com]

  • "instance/_my_vm_" è tokenizzato in: [instance,_my_vm_]

L'operatore has (:) controlla che ogni parola di QUERY nel valore del campo dei metadati della risorsa. Controlla anche le parole ordine e consecutivi. Il valore FIELD supportato può essere diverso a seconda che si tratti di una ricerca di risorse o di una ricerca di criteri IAM. Il campo QUERY può essere una frase oppure una combinazione di frasi.

Esempi

Ad esempio, un asset il cui campo policy ha il valore amy.2020@gmail.com corrisponde alle seguenti query:

  • Corrisponde perché la frase è esattamente uguale al valore del campo.
policy=amy.2020@gmail.com
  • Corrisponde perché i caratteri di punteggiatura vengono trattati come delimitatori e i senza distinzione tra maiuscole e minuscole.
policy:amy-2020@GMAIL.com
  • Corrisponde perché le parole in una frase vengono abbinate in ordine. Tieni presente che "amy 2020 gmail" è una frase; le parole devono essere abbinate nell'ordine e in sequenza.
policy:"amy 2020 gmail"
  • Corrisponde perché una combinazione di parole può apparire in qualsiasi ordine. Tieni presente che (gmail 2020 amy) è una combinazione; vengono trovate corrispondenze non necessariamente in ordine.
policy:(gmail 2020 amy)
  • Corrisponde perché le parole nella frase vengono abbinate in ordine e le parole nella combinazione viene visualizzata in qualsiasi ordine. Tieni presente che "amy 2020" è un frase e parole devono essere abbinate in ordine e in sequenza. (gmail "amy 2020") è una combinazione; gmail e "amy 2020" corrispondono e non sono necessariamente in ordine.
policy:(gmail "amy 2020")
  • Corrisponde perché * può essere utilizzato in una frase per indicare un prefisso corrispondono.
policy:amy-20*

Una risorsa il cui campo policy ha il valore "amy.2020@gmail.com" NON corrisponde le seguenti query:

  • Non corrisponde perché la frase è sensibile alle maiuscole. Utilizza has (:) per le corrispondenze senza distinzione tra maiuscole e minuscole.
policy=amy.2020@GMAIL.com
  • Non corrisponde perché la frase corrisponde parzialmente al valore del campo. Utilizza l'operatore has (:) per la corrispondenza parziale.
policy=amy.2020@gmail

Corrispondenza numerica: operatori di confronto (=, >, >=, <, <=)

FIELD=QUERY

FIELD>QUERY

FIELD>=QUERY

FIELD<QUERY

FIELD<=QUERY

Gli operatori di confronto controllano che il risultato del confronto QUERY e il valore dei metadati della risorsa FIELD è vero.

I nomi di FIELD supportati includono createTime e updateTime.

Per i campi timestamp (createTime e updateTime), il valore QUERY potrebbe essere un numero intero a 64 bit, che rappresenta il timestamp dell'epoca in secondi; o una stringa data-ora in una delle seguenti stringhe formati (il fuso orario è UTC):

  • AAAA-MM-GG: 2021-01-01 (le virgolette sono facoltative)

  • "AAAA-MM-GGThh:mm:ss": "2021-01-01T00:00:00" (le virgolette sono obbligatorie)

Esempi

Ad esempio, un asset il cui campo createTime ha il valore 1609459200 (epoca timestamp di 2021-01-01T00:00:00) corrisponde alle seguenti query:

È uguale a

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

Maggiore di.

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

Maggiore o uguale a.

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

Minore di

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

Minore o uguale a.

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

Frase

Una frase è una o più parole racchiuse tra virgolette doppie ("). Con frasi, l'ordine delle parole è importante. Le parole nella frase devono essere corrispondenti in ordine e consecutivamente. Tieni presente che per trovare una corrispondenza tra più parole rispettare l'ordine, devi utilizzare la combinazione (ad esempio, field:(word1 word2 word3)).

Le seguenti espressioni sono uguali:

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"

Le seguenti frasi devono essere racchiuse tra virgolette:

name:"my instance"

policy:"amy%2020@gmail.com"

description:"domain:gmail.com"

description:"hello \"world\""

description:"hello\\world"

Esempi: a frase

  • Restituisci gli asset il cui campo policy contiene i termini amy e 2020 in ordine e consecutivamente:

    policy:"amy 2020"
    
  • Se hai una risorsa il cui valore del campo policy è "amy.2020@gmail.com", la query sopra riportata corrisponde.

  • Se hai un asset il cui valore del campo policy è "2020.amy@gmail.com", il la query precedente non corrisponde, perché le parole non hanno corrispondenze nell'ordine.

  • Se hai un asset il cui valore del campo policy è "amy.us.2020@gmail.com", la query precedente non corrisponde, in quanto le parole non sono associate consecutivamente.

Combinazione

Le frasi di ricerca possono essere combinate utilizzando AND o OR. Le parentesi sono utilizzate per combinazioni di gruppi.

Esempi: combinazione

  • Restituisce gli asset il cui campo policy contiene sia la parola amy sia la parola john, senza rispettare l'ordine. La combinazione di AND è facoltativa. Tieni presente che per trovare più parole in ordine, devi utilizzare la frase (ad esempio, field:"word1 word2 word3").

    owner:(amy john)
    
  • Restituisci gli asset il cui campo policy contiene la parola amy o la parola john.

    policy:(amy OR john)
    
  • Restituisci gli asset il cui campo policy contiene sia la parola amy che la parola john o ha parola bob.

    policy:((amy john) OR bob)
    
  • Restituisci gli asset il cui campo policy contiene la parola amy e la parola john o name contiene la parola bob.

    policy:(amy john) OR name:bob
    

Negare i filtri di ricerca

I filtri di ricerca possono essere negati utilizzando l'operatore NOT. Le parentesi sono supportati ma non obbligatori.

Esempi: negare i filtri di ricerca

  • Restituisci gli asset il cui campo state non contiene la parola ACTIVE.

    NOT state:ACTIVE
    
  • Restituisci gli asset il cui campo policy non contiene né la parola amy né la parola john.

    NOT policy:(amy OR john)
    
  • Restituisci gli asset il cui campo networkTags non contiene la parola internal o private.

    NOT (networkTags:internal OR networkTags:private)
    

Jolly

Gli asterischi (*) possono essere utilizzati in una frase come caratteri jolly. In base a dalla sua posizione, può avere significati diversi.

  • Se si trova alla fine di una frase, ad esempio "am 20*", si tratta del prefisso di un token indicatore di corrispondenza. La query equivale a (am* 20*). Corrisponde al campo contenente un token che inizia con "am", ad esempio "amy", e un token che inizia con "20", ad esempio "2021". L'ordine dei prefissi non è importante.

  • Se l'intera frase contiene solo un *, ad esempio "labels.env:*", esegue un controllo dell'esistenza. Controlla se la chiave di etichetta specificata "env" esistono. Gli altri campi non sono supportati.

  • Se si trova al centro di una frase, ad esempio "compute*storage", è considerato un delimitatore di tokenizzazione. La query equivale a "compute archiviazione".

  • Se si trova sia all'inizio che alla fine di una frase, ad esempio, "*compute storage*", viene considerato come un delimitatore di tokenizzazione. La query è equivalente a "compute storage".

Esempi: corrispondenza del prefisso del token

  • Restituisci gli asset il cui campo policy contiene una parola che inizia con am:

    policy:am*
    
  • Restituisci gli asset il cui campo policy contiene due parole con "amy" e "20" come prefissi:

    policy:"amy 20*"
    
    policy:"20 amy*"
    
  • Se hai un asset il cui valore del campo policy è "amy.2020@gmail.com", il sopra le query corrispondono entrambe. Dopo la tokenizzazione, "amy" e "20" vengono prefissi. Tieni presente che la stringa di query "amy 20*" è diversa da "amy 20". La seconda richiede che 20 sia una parola intera diversa da un prefisso.

Esempio: esistenza della chiave di etichetta

Restituisci gli asset che uno dei cui labels presenta "env" come chiave e ha qualsiasi valore (incluso valore vuoto o nessun valore):

labels.env:*