Abfragesyntax

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

Operator "Genau passend": gleich (=)

FIELD=QUERY

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

Der Operator equals (=) überprüft, ob QUERY genau mit dem Wert der Asset-Metadaten FIELD übereinstimmt. Die Groß- und Kleinschreibung wird berücksichtigt. Wenn QUERY für ein wiederkehrendes Feld einem der Werte des Felds entspricht, wird das Asset als Übereinstimmung betrachtet. Die unterstützten FIELD-Namen hängen davon ab, ob es sich um eine Ressourcensuche oder eine Richtliniensuche für die Identitäts- und Zugriffsverwaltung (IAM) handelt. QUERY ist eine Wortgruppe, kann aber keine Platzhalter enthalten.

Textteilübereinstimmung: enthält (:)-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, weil 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" entspricht, stimmt NICHT mit den folgenden Abfragen überein:

  • Keine Übereinstimmung, weil die Wortgruppe Groß- und Kleinschreibung berücksichtigt. Verwenden Sie stattdessen den Operator has (:), um die Groß-/Kleinschreibung zu berücksichtigen.

      owner=amy.2020@GMAIL.com
    
  • Stimmt nicht überein, da die Wortgruppe zum Teil mit dem Feldwert übereinstimmt. Verwenden Sie stattdessen für eine teilweise Übereinstimmung den Operator has (:).

      owner=amy.2020@gmail
    

Numerischer Abgleich: Vergleiche (=, >, >=, <, <=)

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 "true" ist.

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

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

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

Beispiele

Beispiel: Ein Asset, dessen Feld createTime den Wert 1609459200 (Epochenzeitstempel von 2021-01-01T00:00:00) den folgenden Abfragen entspricht:

  • 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 als 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 als 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 auf Negate

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

Beispiele: Negate-Suchfilter

  • Ausgabe von Assets, deren Feld state nicht das Wort ACTIVE enthält.

    NOT state:ACTIVE
    
  • Ausgabe von Assets, 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 einem Ausdruck als Platzhalter verwendet werden. Je nach Position kann er unterschiedliche Bedeutungen haben.

  • Wenn es am Ende eines Satzes oder einer "am 20*" ist ein Tokenpräfix-Match-Decorator. Die Abfrage entspricht (am* 20*). Es stimmt mit dem Feld überein, das ein Token enthält, das mit "am" beginnt. Beispiel: "amy" und ein Token, das mit "20", z.B. "2021" Die Reihenfolge der Präfixe ist unerheblich.

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

  • Wenn er in der Mitte einer Wortgruppe ist, "compute*storage" behandelt, wird es als Tokenisierungstrennzeichen behandelt. Die Abfrage entspricht "compute storage".

  • Wenn sowohl der Anfang als auch das Ende einer Wortgruppe sind, "*compute storage*", wird es als Tokenisierungstrennzeichen behandelt. Die Abfrage entspricht "compute storage".

Beispiele: Tokenpräfix-Übereinstimmung

  • 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 Sie einen Inhalt haben, dessen owner-Feldwert "amy.2020@gmail.com" lautet, stimmen die obigen Abfragen mit beiden überein. Nach der Tokenisierung sind sowohl "amy" als auch "20" Präfixe. Beachten Sie, dass sich der Abfragestring "amy 20*" von "amy 20" unterscheidet. Beim letzteren muss 20 ein ganzes Wort außer einem Präfix sein.

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:*