Abfragesyntax

Zum Suchen nach Assets können Sie die Suchergebnisse filtern, indem Sie ein FIELD, einen Operator und eine QUERY angeben.

Genaue Übereinstimmung durch Text: gleich (=)

FIELD=QUERY

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

Der Operator equals (=) prüft, ob QUERY genau mit dem Wert der Asset-Metadaten FIELD übereinstimmt. Die Groß- und Kleinschreibung wird berücksichtigt. Wenn QUERY bei einem wiederkehrenden Feld mit einem der Werte des Felds ü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, kann jedoch keine Platzhalter enthalten.

Text teilweise Übereinstimmung: hat Operator (:)

FIELD:QUERY

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

Bei einer Suche wird die QUERY mit dem Wert der angegebenen Asset-Metadaten FIELD verglichen. Die Felder der Abfrage und der Asset-Metadaten werden zum Vergleich in eine Reihe von Wörtern (Tokens) umgewandelt. 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 zur Tokenisierung sind nicht alphanumerisch [a-zA-Z0-9], Unterstrich [_] oder Und-Zeichen [&].
  • 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 der Asset-Metadaten enthalten ist. Auch die Reihenfolge und die Abfolge der Wörter werden geprüft. Das unterstützte FIELD kann unterschiedlich sein, je nachdem, ob es sich um eine Ressourcensuche oder eine IAM-Richtliniensuche handelt. QUERY kann eine Wortgruppe oder eine Kombination aus Wortgruppen sein.

Beispiele

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

  • Übereinstimmung, da die Wortgruppe genau mit dem Wert des Felds übereinstimmt.

      owner=amy.2020@gmail.com
    
  • Übereinstimmung, da Satzzeichen als Trennzeichen behandelt werden und die Groß-/Kleinschreibung nicht berücksichtigt wird.

      owner: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.

      owner:"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.

      owner:(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.

      owner:(gmail "amy 2020")
    
  • Übereinstimmung, da * in einer Wortgruppe verwendet werden kann, um eine Präfixübereinstimmung anzugeben.

      owner:amy-20*
    

Ein Asset, dessen Feld owner 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.

      owner=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.

      owner=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.

Die unterstützten FIELD-Namen umfassen createTime und updateTime.

Bei Zeitstempelfeldern (createTime und updateTime) könnte QUERY eine signierte 64-Bit-Ganzzahl sein, die den Epochenzeitstempel in Sekunden oder ein Datum-/Uhrzeit-String mit einem der folgenden Formate (Zeitzone ist UTC) darstellt:

  • 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

Beispiel: Ein Asset, dessen Feld createTime den Wert 1609459200 (Epochen-Zeitstempel von 2021-01-01T00:00:00) enthält, stimmt 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. Damit mehrere Wörter ohne Berücksichtigung der Reihenfolge gefunden werden, müssen Sie die Kombination (z. B. field:(word1 word2 word3)) verwenden.

Die folgenden Ausdrücke sind identisch:

owner:amy
owner:"amy"

owner:amy.2020@gmail.com
owner:"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"

owner:"amy%2020@gmail.com"

description:"domain:gmail.com"

description:"hello \"world\""

description:"hello\\world"

Beispiele: Wortgruppe

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

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

  • Wenn das Feld owner 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 owner 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

  • Gibt Assets zurück, deren Feld owner sowohl das Wort amy als auch das Wort john ohne Berücksichtigung der Reihenfolge enthält. AND ist in einer Kombination optional. Hinweis: Wenn Sie nach mehreren Wörtern in einer bestimmten Reihenfolge suchen möchten, verwenden Sie die Wortgruppe (z. B. field:"word1 word2 word3").

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

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

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

    owner:(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 owner weder das Wort amy noch das Wort john enthält.

    NOT owner:(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 am Ende einer Wortgruppe steht, z. B. "am 20*" ist ein Indikator für den Tokenpräfixabgleich. Die Abfrage entspricht (am* 20*). Sie stimmt mit dem Feld überein, das ein Token enthält, das mit "am" beginnt. Beispiel: "amy" und ein Token, das mit "20" beginnt, z. B. "2021". Die Reihenfolge der spielt keine Rolle.

  • Wenn die gesamte Wortgruppe nur einen * 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 es sich in der Mitte einer Wortgruppe befindet, z. B. "compute*storage" wird als Tokenisierungstrennzeichen verwendet. Die Abfrage entspricht "Compute-Speicher".

  • Wenn es sowohl am Anfang als auch am Ende einer Wortgruppe liegt, z. B. "*compute storage*" wird es als Tokenisierungstrennzeichen verwendet. Die Abfrage entspricht "Compute-Speicher".

Beispiele: Übereinstimmung mit Tokenpräfixen

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

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

    owner:"amy 20*"
    
    owner:"20 amy*"
    
  • Wenn das Feld owner 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.

Beispiele: Vorhandensein von Labelschlüsseln

  • Gibt Assets zurück, deren labels "env" als Schlüssel enthält und einen beliebigen Wert hat (einschließlich leerer Wert oder kein Wert):

    labels.env:*