Abfragesyntax

Wenn du nach Assets suchen möchtest, kannst du die Suchergebnisse filtern, indem du FIELD, einen Operator und einen QUERY angibst.

Text "Genau passend: ist gleich"-Operator (=)

FIELD=QUERY

Eine Beispielabfrage ist: policy=amy.2020@gmail.com.

Der Operator equals (=) prüft, ob QUERY genau mit dem Wert der Asset-Metadaten FIELD übereinstimmt. Dabei wird zwischen Groß- und Kleinschreibung unterschieden. Wenn bei einem wiederkehrenden Feld QUERY mit einem der Feldwerte übereinstimmt, wird das Asset als Übereinstimmung betrachtet. Die unterstützten FIELD-Namen hängen davon ab, ob die Abfrage eine Ressourcensuche oder eine IAM-Richtliniensuche (Identity and Access Management) ist. QUERY ist eine Wortgruppe, darf aber keine Platzhalter enthalten.

Teilweise Übereinstimmung des Texts: Doppelpunkt (:) Operator

FIELD:QUERY

Eine Beispielabfrage ist: policy:amy.2020@gmail.

Beim Durchführen einer Suche wird der QUERY mit dem Wert der angegebenen Asset-Metadaten-FIELD verglichen. Die Abfrage- und Asset-Metadatenfelder werden zum Vergleich in eine Wortfolge (d. h. Tokens) konvertiert. Dies läuft so ab:

  • Voran- und nachgestellten Sonderzeichen werden entfernt und der Suchwert wird tokenisiert. Dabei werden die Sonderzeichen als Trennzeichen behandelt. Die Sonderzeichen für die Tokenisierung sind die Zeichen, die nicht alphanumerisch [a-zA-Z0-9], Unterstrich [_] oder Et-Zeichen [&] sind.

  • Die Unicode-Umwandlung in einheitliche Groß- oder Kleinschreibung wird ausgeführt, sodass die Groß-/Kleinschreibung ignoriert wird.

Hier sind einige Beispiele zur Tokenisierung:

  • "amy-2020@GMAIL.com" wird tokenisiert zu: [amy,2020,gmail,com]

  • "google.com/cloud" wird tokenisiert zu: [google,com,cloud]

  • "Compute %Instance%" wird tokenisiert zu: [compute,instance]

  • "$%^*-!" wird tokenisiert zu: []

  • "" wird tokenisiert zu: []

  • "compute*storage" wird tokenisiert zu: [compute,storage]

  • "compute&storage" wird tokenisiert zu: [compute&storage]

  • "BOB_test@gmail.com" wird tokenisiert zu: [bob_test,gmail,com]

  • "instance/_my_vm_" wird tokenisiert zu: [instance,_my_vm_]

Der Operator has (:) prüft, ob jedes Wort von QUERY im Wert des Felds für Asset-Metadaten vorhanden ist. Auch die Reihenfolge und die Abfolge der Wörter werden geprüft. Die unterstützte FIELD kann unterschiedlich sein, je nachdem, ob es eine Ressourcensuche oder eine IAM-Richtliniensuche ist. QUERY kann eine Wortgruppe oder eine Kombination von Wortgruppen sein.

Beispiele

Ein Asset, dessen Feld policy den Wert amy.2020@gmail.com enthält, stimmt beispielsweise mit den folgenden Abfragen überein:

  • Übereinstimmung, da die Wortgruppe genau mit dem Wert des Felds übereinstimmt.
policy=amy.2020@gmail.com
  • Übereinstimmung, da Satzzeichen als Trennzeichen behandelt werden und bei der Abfrage nicht zwischen Groß- und Kleinschreibung unterschieden wird.
policy:amy-2020@GMAIL.com
  • Übereinstimmung, da die Wörter einer Wortgruppe der Reihenfolge nach abgeglichen werden. Beachten Sie, dass "amy 2020 gmail" eine Wortgruppe ist; Wörter sollten immer der Reihenfolge und Abfolge nach abgeglichen werden.
policy:"amy 2020 gmail"
  • Übereinstimmung, da eine Kombination aus Wörtern in beliebiger Reihenfolge möglich sein kann. Beachten Sie, dass (gmail 2020 amy) eine Kombination ist; Wörter werden abgeglichen und nicht unbedingt der Reihenfolge nach.
policy:(gmail 2020 amy)
  • Übereinstimmung, da die Wörter in der Wortgruppe in der angegebenen Reihenfolge abgeglichen und Wörter in der Reihenfolge in beliebiger Reihenfolge angezeigt werden. Beachten Sie, dass "amy 2020" eine Wortgruppe ist und Wörter in der angegebenen Reihenfolge und Abfolge abgeglichen werden. (gmail "amy 2020") ist eine Kombination; gmail und "amy 2020" werden abgeglichen und nicht unbedingt in der angegebenen Reihenfolge.
policy:(gmail "amy 2020")
  • Übereinstimmung, da * in einer Wortgruppe verwendet werden kann, um eine Präfixübereinstimmung anzugeben.
policy:amy-20*

Ein Asset, dessen policy-Feld den Wert "amy.2020@gmail.com" enthält, stimmt NICHT mit den folgenden Abfragen überein:

  • Übereinstimmung, da bei der Wortgruppe die Groß-/Kleinschreibung berücksichtigt wird. Verwenden Sie stattdessen den Operator has (:), wenn die Groß-/Kleinschreibung nicht berücksichtigt werden soll.
policy=amy.2020@GMAIL.com
  • Übereinstimmung, da die Wortgruppe teilweise mit dem Wert des Felds übereinstimmt. Verwenden Sie stattdessen den Operator has (:), um eine teilweise Übereinstimmung zu finden.
policy=amy.2020@gmail

Numerische Übereinstimmung: Vergleichsoperatoren (=, >, >=, <, <=)

FIELD=QUERY

FIELD>QUERY

FIELD>=QUERY

FIELD<QUERY

FIELD<=QUERY

Die Vergleichsoperatoren prüfen, ob das Vergleichsergebnis zwischen QUERY und dem Wert der Asset-Metadaten FIELD wahr ist.

Zu den unterstützten FIELD-Namen gehören createTime und updateTime.

Für Zeitstempelfelder (createTime und updateTime) kann QUERY eine vorzeichenbehaftete 64-Bit-Ganzzahl sein, die einen Epochenzeitstempel in Sekunden darstellt, oder ein Datum/Uhrzeit-String in einem der folgenden Formate (Zeitzone ist UTC):

  • JJJJ-MM-TT: 01.01.2021 (Anführungszeichen sind optional)

  • "JJJJ-MM-TTTHH:mm:ss": "2021-01-01T00:00:00" (Anführungszeichen sind erforderlich)

Beispiele

Ein Asset, dessen Feld createTime den Wert 1609459200 hat (Epochenzeitstempel 2021-01-01T00:00:00), stimmt beispielsweise mit den folgenden Abfragen überein:

Ist gleich

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

Größer als.

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

Größer oder gleich

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

Kleiner als.

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

Kleiner oder gleich

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

Wortgruppe

Ein Satz besteht aus einem oder mehreren Wörtern, die in doppelte Anführungszeichen (") eingeschlossen sind. Bei Wortgruppen ist die Reihenfolge der Wörter wichtig. Die Wörter in der Wortgruppe müssen in der richtigen Reihenfolge und nacheinander folgen. Wenn Sie mehrere Wörter abgleichen möchten, ohne die Reihenfolge zu beachten, müssen Sie die Kombination (z. B. field:(word1 word2 word3)) verwenden.

Die folgenden Ausdrücke sind identisch:

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"

Die folgenden Wortgruppen müssen in Anführungszeichen gesetzt werden:

name:"my instance"

policy:"amy%2020@gmail.com"

description:"domain:gmail.com"

description:"hello \"world\""

description:"hello\\world"

Beispiele: Wortgruppe

  • Gibt Assets zurück, deren Feld policy die Wörter amy und 2020 in der richtigen Reihenfolge und Abfolge enthält:

    policy:"amy 2020"
    
  • Wenn das Feld policy eines der Assets auf "amy.2020@gmail.com" gesetzt ist, besteht eine Übereinstimmung der obigen Abfrage.

  • Wenn das Feld policy eines der Assets den Wert "2020.amy@gmail.com" hat, besteht keine Übereinstimmung, da die Wörter nicht in der angegebenen Reihenfolge abgeglichen werden.

  • Wenn das Feld policy eines der Assets den Wert "amy.us.2020@gmail.com" hat, besteht keine Übereinstimmung, da die Wörter nicht in der angegebenen Abfolge abgeglichen werden.

Kombination

Suchwortgruppen können mit AND oder OR kombiniert werden. Zum Gruppieren von Kombinationen werden Klammern verwendet.

Beispiele: Kombination

  • Assets zurückgeben, deren Feld policy sowohl das Wort amy als auch das Wort john enthält, ohne die Reihenfolge zu berücksichtigen. AND ist in einer Kombination optional. Wenn Sie nach mehreren Wörtern suchen möchten, müssen Sie die Wortgruppe verwenden (z. B. field:"word1 word2 word3").

    owner:(amy john)
    
  • Gibt Assets zurück, deren Feld policy entweder das Wort amy oder das Wort john enthält.

    policy:(amy OR john)
    
  • Gibt Assets zurück, deren Feld policy sowohl das Wort amy als auch das Wort john oder das Wort bob enthält.

    policy:((amy john) OR bob)
    
  • Gibt Assets zurück, deren Feld policy sowohl das Wort amy als auch das Wort john oder deren Feld name das Wort bob enthält.

    policy:(amy john) OR name:bob
    

Suchfilter negieren

Suchfilter können mit dem Operator NOT negiert werden. Klammern werden unterstützt, sind aber nicht erforderlich.

Beispiele: Suchfilter negieren

  • Gibt Assets zurück, deren Feld state nicht das Wort ACTIVE enthält.

    NOT state:ACTIVE
    
  • Gibt Assets zurück, deren Feld policy weder das Wort amy noch das Wort john enthält.

    NOT policy:(amy OR john)
    
  • Gibt Assets zurück, deren Feld networkTags nicht das Wort internal oder private enthält.

    NOT (networkTags:internal OR networkTags:private)
    

Wildcard

Sternchen (*) können in einer Wortgruppe als Platzhalterzeichen verwendet werden. Abhängig von seiner Position kann es unterschiedliche Bedeutungen haben.

  • Wenn er sich am Ende einer Wortgruppe befindet, z. B. "am 20*", ist er ein Indikator für den Abgleich des Tokenpräfixes. Die Abfrage entspricht (am* 20*). Sie stimmt mit dem Feld überein, das ein Token enthält, das mit „am“ beginnt (z. B. „amy“), und ein Token, das mit „20“ beginnt, z. B. „2021“. Die Reihenfolge der spielt keine Rolle.

  • Wenn die gesamte Wortgruppe nur ein * enthält, z. B. "labels.env:*", wird eine Existenzprüfung durchgeführt. Sie prüft, ob der angegebene Labelschlüssel „env“ vorhanden ist. Andere Felder werden nicht unterstützt.

  • Wenn er sich mitten in einer Wortgruppe befindet, z. B. "compute*storage", wird er als Tokenisierungs-Trennzeichen behandelt. Die Abfrage entspricht "Computing-Speicher".

  • Wenn er sich sowohl am Anfang als auch am Ende einer Wortgruppe befindet, z. B. "*compute storage*", wird er als Tokenisierungs-Trennzeichen behandelt. Die Abfrage entspricht "Compute-Speicher".

Beispiele: Übereinstimmung mit Tokenpräfixen

  • Gibt Assets zurück, deren Feld policy ein Wort enthält, das mit am beginnt:

    policy:am*
    
  • Gibt Assets zurück, deren Feld policy zwei Wörter mit "amy" und "20" als Präfixe enthält:

    policy:"amy 20*"
    
    policy:"20 amy*"
    
  • Wenn das Feld policy eines der Assets auf "amy.2020@gmail.com" gesetzt ist, stimmen die obigen Abfragen überein. Nach der Tokenisierung sind sowohl "amy" als auch "20" Präfixe. Beachten Sie, dass sich der Abfragestring "amy 20*" von "amy 20" unterscheidet. Letzteres erfordert, dass 20 ein ganzes Wort abgesehen von einem Präfix ist.

Beispiel: Vorhandensein eines Labelschlüssels

Gibt Assets zurück, deren labels „env“ als Schlüssel und einen beliebigen Wert hat (einschließlich leerer Wert oder ohne Wert):

labels.env:*