Wenn Sie nach Assets suchen, können Sie die Suchergebnisse filtern, indem Sie eine Suchanfrage mit einem Asset-Metadatenfeld, einem Operator und einem Wert angeben.
Suchbare Felder und Ressourcen
Informationen zu den Feldern, die Sie in einer searchAllResources
-Abfrage verwenden können, finden Sie unter Felder für ResourceSearchResult.
Informationen zu den Feldern, die Sie in einer searchAllIamPolicies
-Abfrage verwenden können, finden Sie unter Felder für IAM-Richtliniensuchergebnisse.
Informationen zu den Ressourcen, nach denen Sie suchen können, finden Sie unter Ressourcentypen.
Textabgleich
Bei der Suche nach einer Textübereinstimmung können Sie ein Asset-Metadatenfeld genau oder teilweise abgleichen.
Genaue Textübereinstimmung
Verwenden Sie für eine genaue Textübereinstimmung den Operator =
(gleich) mit der folgenden Syntax:
ASSET_METADATA_FIELD=QUERY
Beispiel:
location=us-central1-a
Beachten Sie bei der Verwendung der genauen Übereinstimmung die folgenden Regeln:
Damit die Abfrage wahr ist, muss der Abfragewert genau mit dem Wert des Asset-Metadatenfelds übereinstimmen.
Wenn der Abfragewert bei einem Feld mit einem Listenwert mit einem der Elemente der Liste übereinstimmt, wird dies als Übereinstimmung betrachtet.
Bei Abfragewerten wird die Groß- und Kleinschreibung berücksichtigt.
Ein Abfragewert für die genaue Übereinstimmung wird wie eine Wortgruppe behandelt, darf aber keine Wildcards enthalten.
Teilweise Textübereinstimmung
Verwenden Sie für eine teilweise Textübereinstimmung den Operator :
(hat) mit der folgenden Syntax:
ASSET_METADATA_FIELD:QUERY
Beispiel:
location:us-central1
Wenn Sie eine Suche mit dem Operator :
ausführen, werden der Abfragewert und die Werte der Asset-Metadatenfelder zum Vergleich in Tokens umgewandelt. Es wird geprüft, ob jedes Wort des Abfragewerts in aufeinanderfolgender Reihenfolge im Wert des Felds der Asset-Metadaten enthalten ist. Bei der Verwendung von Teilübereinstimmungen wird die Groß- und Kleinschreibung der Abfragewerte ignoriert.
Abfragewerte für die teilweise Übereinstimmung können Wortgruppen oder eine Kombination von Wortgruppen sein und Platzhalter enthalten. In einer Abfrage können bis zu zehn Vergleiche mit maximal 2.048 Zeichen durchgeführt werden. Wenn Sie einen Anwendungsfall für längere Abfragen haben, kontaktieren Sie uns unter gcp-asset-inventory-and-search-feedback@googlegroups.com.
Tokenisierungsregeln
Die Tokenisierungsregeln für die teilweise Textübereinstimmung sind:
Voran- und nachgestellte Sonderzeichen werden entfernt.
Nicht alphanumerische Zeichen (
[a-zA-Z0-9]
), Unterstriche (_
) oder Ampersands (&
) werden als Trennzeichen behandelt.
Hier sind einige Beispiele zur Tokenisierung:
us-central1
wird zu[us,central1]
tokenisiertalex-2020@EXAMPLE.com
wird zu[alex,2020,example,com]
tokenisiertgoogle.com/cloud
wird zu[google,com,cloud]
tokenisiertCompute %Instance%
wird zu[compute,instance]
tokenisiert$%^*-!
wird zu[]
tokenisiertcompute*storage
wird zu[compute,storage]
tokenisiertcompute&storage
wird zu[compute&storage]
tokenisiertALEX_test@example.com
wird zu[alex_test,example,com]
tokenisiertinstance/_my_vm_
wird zu[instance,_my_vm_]
tokenisiert
Beispiele für genaue und teilweise Textübereinstimmungen
Ein Asset, dessen Feld location
den Wert us-central1-a
enthält, stimmt mit den folgenden Abfragen überein.
Abfrage | Grund für die Übereinstimmung |
---|---|
location=us-central1-a |
Übereinstimmung, da die Wortgruppe us-central1-a genau mit dem Wert des Felds übereinstimmt.
|
location:US-Central1-A |
Übereinstimmung, da Satzzeichen als Trennzeichen behandelt werden und die Groß-/Kleinschreibung beim Abfragewert nicht berücksichtigt wird. |
location:"us central1 a" |
Übereinstimmung, da die Wörter in der Wortgruppe "us central1 a" in der richtigen Reihenfolge mit dem Feldwert übereinstimmen.
|
location:(central1 us a) |
Übereinstimmung, da die Wörter in der Kombination (central1 us a) in beliebiger Reihenfolge mit den Wörtern im Feldwert übereinstimmen.
|
location:(a "us central1") |
Übereinstimmung, da die Wortgruppen in der Kombination, a und "us central1" , in beliebiger Reihenfolge mit den Wörtern im Feldwert übereinstimmen. Da "us central1" eine Wortgruppe ist, müssen diese Wörter in der richtigen Reihenfolge abgeglichen werden.
|
location:us-central* |
Übereinstimmung, da der Platzhalter * für eine Präfixübereinstimmung verwendet wird.
|
Ein Asset, dessen Feld location
den Wert us-central1-a
enthält, stimmt NICHT mit den folgenden Abfragen überein:
Abfrage | Grund für die fehlende Übereinstimmung |
---|---|
location=US-central1-a |
Keine Übereinstimmung, da bei der Wortgruppe die Groß-/Kleinschreibung berücksichtigt wird. Verwenden Sie stattdessen den Operator : , wenn die Groß-/Kleinschreibung nicht berücksichtigt werden soll.
|
location=us-central1 |
Übereinstimmung, da die Wortgruppe teilweise mit dem Wert des Felds übereinstimmt.
Verwenden Sie stattdessen den Operator : , um eine teilweise Übereinstimmung zu finden.
|
Abfrage mit Textübereinstimmung erstellen
Ein Abfragewert kann aus Wortgruppen, Kombinationen, Negationen und Platzhaltern bestehen.
Wortgruppen
Eine Wortgruppe besteht aus einem oder mehreren Wörtern, die in der richtigen Reihenfolge abgeglichen werden. Wenn Sie Wörter ohne Berücksichtigung der Reihenfolge abgleichen möchten, verwenden Sie stattdessen Kombinationen.
Mit der folgenden Abfrage werden Assets gefunden, deren Feld policy
die Wörter alex
und 2020
in der richtigen Reihenfolge enthält:
policy:"alex 2020"
Ein Asset, dessen Feld policy
den Wert "alex.2020@example.com"
enthält, stimmt mit der Abfrage überein, da die Wörter alex
und 2020
in der richtigen Reihenfolge und Abfolge enthalten sind. Das Zeichen .
wird ignoriert, da Satzzeichen als Trennzeichen behandelt werden.
Bei einem Asset, dessen Feld policy
den Wert "2020.alex@example.com"
oder "alex.us.2020@example.com"
hat, besteht keine Übereinstimmung, da die Wörter alex
und 2020
nicht in der richtigen Reihenfolge sind.
Wortgruppe erstellen
Beachten Sie beim Erstellen einer Wortgruppe die folgenden Regeln:
Wenn die Wortgruppe nur Zeichen des lateinischen Grundalphabets nach ISO
[a-zA-Z]
, Zahlen[0-9]
, einfache E-Mail- oder URL-Connectors[_-+.@/&]
oder Platzhalter[*]
enthält, müssen Sie sie nicht in doppelte Anführungszeichen setzen:policy:alex.2020@example.com
Das Einschließen in doppelte Anführungszeichen funktioniert jedoch weiterhin und verhält sich gleich:
policy:"alex.2020@example.com"
Wenn der Ausdruck Leerzeichen oder andere Sonderzeichen enthält, muss er in doppelte Anführungszeichen gesetzt werden:
location:"us central1"
Wenn die Wortgruppe in doppelte Anführungszeichen gesetzt ist und auch ein doppeltes Anführungszeichen (
"
) oder einen umgekehrten Schrägstrich (\
) enthält, müssen Sie diese Zeichen mit\"
oder\\
maskieren. Sie können sie auch durch ein einzelnes Leerzeichen ersetzen, da nicht alphanumerische Zeichen bei der Suche als Trennzeichen behandelt werden. Die folgenden Abfragen werden gleich behandelt:description:"One of \"those\" descriptions." description:"One of those descriptions."
Wenn Sie die gcloud CLI oder die REST API verwenden, müssen Sie die doppelten Anführungszeichen, die einen Ausdruck kennzeichnen, mit einem Escape-Zeichen versehen:
--query="location:(a \"us central1\")"
"query": "location:(a \"us central1\")"
Kombinationen
Suchwortgruppen können mit den logischen Operatoren AND
oder OR
kombiniert werden. Die Verwendung von AND
ist bei Klammern optional. Die folgenden Abfragen werden beispielsweise gleich behandelt:
policy:(alex charlie)
policy:(alex AND charlie)
Wenn ein Asset ein Metadatenfeld mit einer Liste von Werten enthält, ist bei einer AND
-Kombination nicht garantiert, dass sich alle Wörter in einem einzigen Element befinden. Wenn ein Metadatenfeld beispielsweise policy=["alex@example.com", "bola@example.com", "charlie@example.com"]
ist, wird bei einer Suche mit policy:(alex charlie)
eine Übereinstimmung gefunden, da alex@example.com
alex
und charlie@example.com
charlie
enthält.
Sie können Kombinationstypen mit Klammern gruppieren. Im folgenden Beispiel werden Assets zurückgegeben, deren Richtlinienfeld alex
und charlie
in beliebiger Reihenfolge oder bola
enthält.
policy:((alex charlie) OR bola)
Sie können eine Wortgruppe in einer Kombination verwenden, um mehrere Wörter in aufeinanderfolgender Reihenfolge abzugleichen. Im folgenden Beispiel werden Assets zurückgegeben, deren Richtlinienfeld alex
und 2020
in aufeinanderfolgender Reihenfolge oder bola
enthält:
policy:(("alex 2020") OR bola)
Beispiele für Kombinationen
Die folgenden Abfragen veranschaulichen verschiedene Kombinationen. Beachten Sie die Platzierung der Klammern, um AND
- und OR
-Operatoren voneinander zu trennen. Die Kombination von Operatoren innerhalb einer einzigen Klammer ist unzulässig, z. B.: policy:(alex charlie OR bola)
.
Abfrage | Beschreibung |
---|---|
policy:(alex charlie) |
Gibt Assets zurück, deren Feld policy sowohl alex als auch charlie enthält.
|
policy:(alex OR charlie) |
Gibt Assets zurück, deren Feld policy entweder alex oder charlie enthält.
|
policy:((alex charlie) OR bola) |
Gibt Assets zurück, deren Feld policy sowohl alex als auch charlie oder das Wort bola enthält.
|
policy:(alex charlie) OR name:bola |
Gibt Assets zurück, deren Feld policy alex und charlie oder deren Feld name bola enthält.
|
Negation
Suchanfragen können mit dem Operator NOT
in Großbuchstaben negiert werden. Klammern werden unterstützt, sind aber nicht erforderlich.
Beispiele für Negationen
Gibt Assets zurück, deren Feld
state
nicht das Wortrunning
enthält.NOT state:running
Gibt Assets zurück, deren Feld
policy
wederalex
nochcharlie
enthält.NOT policy:(alex OR charlie)
Gibt Assets zurück, deren Feld
networkTags
wederinternal
nochprivate
enthält.NOT (networkTags:internal OR networkTags:private)
Platzhalter
Sternchen (*
) können in einer Wortgruppe als Platzhalterzeichen verwendet werden. Je nach Position kann ein Sternchen unterschiedliche Bedeutungen haben.
Wenn
*
am Ende einer Wortgruppe steht, wird es als Token-Präfixübereinstimmung behandelt."al 20*"
entspricht beispielsweise(al* 20*)
. Die Reihenfolge der Präfixe spielt keine Rolle.Der Ausdruck
"al 20*"
stimmt mit einem Feldwert mit einem Token überein, das mital
beginnt (z. B.alex
), und einem Token, das mit20
beginnt (z. B.2020
).Wenn der gesamte Abfragewert für
labels
nur einen einzelnen*
enthält, z. B."labels.env:*"
, handelt es sich um eine Existenzprüfung. Cloud Asset Inventory prüft also, ob der Labelschlüsselenv
vorhanden ist. Nur das Feldlabels
unterstützt Existenzprüfungen.Wenn sich
*
in der Mitte einer Wortgruppe befindet, z. B."compute*storage"
, wird es als Tokenisierungstrennzeichen behandelt. Dieser Abfragewert entspricht"compute storage"
.Wenn
*
sowohl am Anfang als auch am Ende einer Wortgruppe steht, z. B."*compute storage*"
, wird es als Tokenisierungstrennzeichen verwendet. Dieser Abfragewert entspricht"compute storage"
.
Vergleich von Zahlen und Zeitstempeln
Verwenden Sie für den Vergleich von Zahlen und Zeitstempeln Vergleichsoperatoren mit der folgenden Syntax:
ASSET_METADATA_FIELD>=QUERY
Folgende Vergleichsoperatoren sind verfügbar:
=
: gleich>
: größer als>=
: Größer als oder gleich<
: kleiner als<=
: Kleiner als oder gleich
Wenn du Zeitstempel vergleichen möchtest, z. B. die in den Asset-Metadatenfeldern createTime
und updateTime
gespeicherten, verwende eine signierte 64-Bit-Ganzzahl (den Epochenzeitstempel in Sekunden) oder einen Datums-/Uhrzeit-String in UTC+0 in einem der folgenden Formate:
2021-01-01
(JJJJ-MM-TT)"2021-01-01T00:00:00"
("YYYY-MM-DDThh:mm:ss")
Beispiele für Datumsangaben und Uhrzeiten
Ein Asset, dessen Feld createTime
den Wert 1609459200
(Epochen-Zeitstempel von 2021-01-01T00:00:00
) enthält, stimmt mit den folgenden Abfragen überein:
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"