Cloud Advisor-Abfragen erstellen
Prüfen Sie die Grundlagen der Abfragesprache für Cloud Advisor, einschließlich einer Erläuterung von Syntax und Regeln, damit Sie Ihre eigenen Abfragen erstellen können.
Abfragen wenden Suchbedingungen auf eine Gruppe von Attributen an und ermöglichen das Sortieren von Ergebnissen. Wenn Sie eine Suche in allen unterstützten Ressourcenarten und Ressourcenattributen vornehmen möchten und keine sortierten Suchergebnisse benötigen, müssen Sie keine Attributreihenfolge hinzufügen.
Dieses Thema enthält die folgenden Abschnitte:
Erforderliche IAM-Berechtigungen
Welche Ressourcen in den Abfrageergebnissen angezeigt werden, ist von den Berechtigungen abhängig, die Sie für den Ressourcentyp eingerichtet haben. Es werden nicht unbedingt Ergebnisse für jede Ressource im Compartment oder Mandanten angezeigt. Wenn Ihr Benutzeraccount nicht mit einer Policy verknüpft ist, die Ihnen mindestens die Berechtigung inspect
für den Ressourcentyp
erteilt, können Sie keine Cloud Advisor-Ressourcen abfragen. (Mit dem Verb optimizer-resource-action
inspect
können Sie Ressourcen auflisten und abrufen.) Stattdessen zeigt Cloud Advisor keine Ergebnisse für Abfragen an.
Weitere Informationen zu Policys finden Sie unter Funktionsweise von Policys. Informationen zu den spezifischen Berechtigungen, die für den Listen-API-Vorgang für den erforderlichen Ressourcentyp erforderlich sind, finden Sie unter Cloud Advisor-Policys erstellen.
Abfragegrundlagen
Die folgenden Beispiele zeigen die allgemeine Syntax einer Cloud Advisor-Abfrage:
query ResourceAction where <conditions> sorted by <fieldName> <order>
Oder:
query ResourceAction matching <keywords>
Cloud Advisor ignoriert Leerzeichen, Einrückungen und Zeilenbrüche. Zur besseren Lesbarkeit sind in den Abfragebeispielen Einzüge enthalten. Zur Veranschaulichung der Syntax werden spitze Klammern (<>) und kursiver Text verwendet. Dadurch werden Variablen hervorgehoben, die aus einem oder mehreren Schlüsselwörtern bestehen können.
Die Klauseln einer Abfrage enthalten Folgendes:
query
(erforderlich): Dient der Auswahl der Ressourcen, die basierend auf den nachfolgenden Klauseln zurückgegeben werden sollen. Abfrageanweisungen beginnen immer mit dem Wortquery
.where
: Gleicht Ressourcen mit den angegebenenconditions
(Bedingungen) ab.matching
: Gleicht Ressourcen mit dem angegebenen Text ab, unabhängig davon, ob eine genaue Übereinstimmung des Textes oder eine Übereinstimmung mit dem Ressourcentyp vorliegt oder ob der Text in einem indexierten Ressourcenattribut vorkommt.sorted by
: Sortiert Ressourcen nach demfieldName
(Feldnamen) in der Reihenfolge, die durchorder
vorgegebenen wird. Wenn Sie diese Klausel nicht einschließen, listet Cloud Advisor die Ergebnisse in absteigender Reihenfolge nach dem Erstellungsdatum auf, wobei die neuesten Ressourcen zuerst aufgeführt werden.
Sofern nicht anders angegeben, sind Klauseln optional. Zum Abgleich können Sie die Klauseln where
und matching
entweder separat oder gemeinsam verwenden.
Bedingungen
Die where
-Klausel verwendet conditions
, mit denen die von Cloud Advisor zurückgegebenen Ergebnisse gefiltert werden. Sie können eine oder mehrere Bedingungsanweisungen angeben. Weitere Informationen zu mehreren Bedingungen finden Sie unter Bedingungen gruppieren.
conditions
(Bedingungen) einer Abfrage bestehen aus Folgendem:
<fieldName> <operation> <value>
Das Schlüsselwort fieldName
(Feldname) ist das Ressourcenattribut, anhand dessen der Vorgang (operation
) und der gewünschte Wert (value
) dieses Attributs ausgewertet werden. Jedes Feld ist einem Feldtyp zugeordnet. Der Feldtyp gibt das erwartete Format für einen beliebigen Wert in diesem Feld an. Welchen Vorgang (operation
) Sie in einer conditions
-Anweisung verwenden können, hängt vom jeweiligen Feldtyp ab.
In den Bedingungen (conditions
) einer Abfrage ist ein Vorgang (operation
) ein Vergleichsoperator, der sich auf den Wert (value
) in der Anweisung bezieht. Das Schlüsselwort value
bezieht sich auf den Wert des von Ihnen angegebenen Feldnamens (fieldName
). Cloud Advisor wertet aus, ob das angegebene Attribut des ausgewählten Ressourcentyps je nach Vorgang mit dem Wert value
übereinstimmt oder nicht. In einer Abfrage müssen Sie eine Zeichenfolge oder einen Datums-/Uhrzeitwert in öffnende und schließende einfache (') oder doppelte Anführungszeichen (") setzen.
In der folgenden Tabelle sind die unterstützten Vorgänge für Ressourcenabfragen beschrieben:
Vorgang | Beschreibung | Unterstützte Feldtypen | Groß- und Kleinschreibung beachten? | Beispiel |
---|---|---|---|---|
=
|
Gleich oder genaue Übereinstimmung für Zeichenfolgen |
Zeichenfolge, Ganzzahl, rationale Zahl, boolescher Wert, Datum/Uhrzeit |
Nein |
Lautet der Wert (value ) "backUp", besteht eine Übereinstimmung mit "backup", "BACKUP", "BackUp", "backUp" und jeder anderen Variante in Bezug auf die Groß- und Kleinschreibung. |
!=
|
Ungleich |
Zeichenfolge, Ganzzahl, rationale Zahl, boolescher Wert, Datum/Uhrzeit |
Nein |
Lautet der Wert (value ) "backUp", besteht eine Übereinstimmung mit allem, was nicht gleich "backUp", "backup" oder einer anderen beliebigen Variante in Bezug auf die Groß- und Kleinschreibung ist. Außerdem besteht eine Übereinstimmung mit allem, was nicht die Zeichen "backup" in dieser Reihenfolge enthält. |
==
|
Genau gleich |
Zeichenfolge |
Ja |
Lautet der Wert (value ) "backUp", besteht eine Übereinstimmung nur mit "backUp" und keiner anderen Variante in Bezug auf die Groß- und Kleinschreibung. |
!==
|
Genau ungleich |
Zeichenfolge |
Ja |
Lautet der Wert (value ) "backUp", besteht eine Übereinstimmung mit "backup", "BACKup" und jeder anderen Variante in Bezug auf die Groß- und Kleinschreibung mit Ausnahme von "backUp". |
=~
|
Enthält |
Zeichenfolge |
Nein |
Lautet der Wert (value ) "backUp", besteht eine Übereinstimmung mit allem, was gleich "backup", "BACKUP", "BackUp", "backUp" oder einer anderen Variante in Bezug auf die Groß- und Kleinschreibung ist oder diese Zeichen in dieser Reihenfolge zusammen mit anderen Zeichen enthält. |
>=
|
Größer als oder gleich |
Ganzzahl, rationale Zahl, Datum/Uhrzeit |
Nicht anwendbar |
Bei einer Abfrage mit size >= 5 als Bedingung haben alle Ergebnisse im Feld mit dem Namen size den Wert 5 oder größer. |
>
|
Größer als |
Ganzzahl, rationale Zahl, Datum/Uhrzeit |
Nicht anwendbar |
Bei einer Abfrage mit size > 5 als Bedingung haben alle Ergebnisse im Feld mit dem Namen size einen Wert größer als 5. |
<=
|
Kleiner als oder gleich |
Ganzzahl, rationale Zahl, Datum/Uhrzeit |
Nicht anwendbar |
Bei einer Abfrage mit size <= 5 als Bedingung haben alle Ergebnisse im Feld mit dem Namen size den Wert 5 oder kleiner. |
<
|
Kleiner als |
Ganzzahl, rationale Zahl, Datum/Uhrzeit |
Nicht anwendbar |
Bei einer Abfrage mit size < 5 als Bedingung haben alle Ergebnisse im Feld mit dem Namen size den Wert 5 oder kleiner. |
In der folgenden Tabelle sind einige Beispiele für Ressourcenattribute aufgeführt, die zu den einzelnen Kategorien der unterstützten Feldtypen gehören. Der Feldtyp gibt das erwartete Format für ein bestimmtes Feld und den Vorgang (operation
) an, mit dem Sie es in einer conditions
-Anweisung zusammen verwenden können.
Die Tabelle enthält nicht alle möglichen Beispiele für einen bestimmten Feldtyp. Wenn Sie wissen möchten, welches Format der Cloud Advisor-Service für ein bestimmtes Ressourcenattribut erwartet, können Sie über die Befehlszeilenschnittstelle oder API weitere Informationen zu Ressourcenattributen erhalten. Sie können auch die API-Dokumentation hinzuziehen. Die API-Dokumentation enthält eine Referenz zu jedem unterstützten Ressourcentyp, in der Attribute, deren Feldtypen und eventuelle Einschränkungen angegeben sind.
Typ | Beispiele für Ressourcenattribute |
---|---|
Zeichenfolge | Anzeigenamen, Lebenszyklusstatus, Availability-Domains, Tags, CIDR-Blöcke und URLs |
Ganzzahl | Größe oder Länge einer Ressource |
Rationale Zahl | Verfügbarer Datenspeicher |
Boolescher Wert | Ob ein Feature aktiviert oder konfiguriert ist, ob eine Ressource fehlerfrei ist, ob eine Ressource öffentlich oder privat ist, ob es sich um die neueste Version handelt und ob etwas zulässig ist |
Datum/Uhrzeit | Erstellungsdaten, Datumsangaben der letzten Aktualisierung, Daten der letzten Indexierung und Neustarts im Rahmen der geplanten Wartung |
Bedingungen gruppieren
Indem Sie mehrere Bedingungsanweisungen in einer Abfrage verwenden, können Sie die Ergebnisse anhand mehrerer Kriterien verfeinern. Sie können mehrere Bedingungen gruppieren, indem Sie entweder die logischen Operatoren &&
(Et-Zeichen zur Angabe eines logischen UND) oder ||
(senkrechte Striche zur Angabe eines logischen ODER) verwenden. Beispiel:
resourceType = 'Compute' && status = 'Active' && regionName = 'us-ashburn-1'
Sie können zwei verschiedene logische Operatoren nicht in derselben Abfrage verwenden, es sei denn, Sie um eine Gruppe von Prädikaten werden in Klammern gesetzt. Andernfalls können mehrere Bedingungen nur denselben logischen Operator verwenden. Beispiel:
(resourceType = 'Compute' && status = 'Active' && regionName = 'us-region-1') || status != 'Implemented'
Im vorherigen Beispiel enthalten alle zurückgegebenen Ergebnisse entweder "Compute" als Wert für resourceType, "Active" als Wert für den Status und us-region-1 als Wert für regionName, oder der Wert des Statusfeldes ist nichts anderes als "Implementiert".
Die folgende Gruppe ist ebenfalls zulässig:
status = 'Implemented' && (resourceType = 'Compute' || lifecycleState != 'FAILED')
Im vorherigen Beispiel enthalten alle zurückgegebenen Ergebnisse "Implemented" als Wert für den Status und entweder "Compute" als Wert für resourceType oder einen anderen Wert als FAILED für lifecycleState.
Cloud Advisor führt keine Auswertung von links nach rechts durch, um eine Mehrdeutigkeit zu vermeiden oder die Absicht zu präzisieren.
Datums- und Uhrzeitwerte
Sie können Datums- und Uhrzeitwerte in einem der folgenden Zeichenfolgenformate angeben:
Format | Beispiele | Anmerkungen |
---|---|---|
<yyyy>-<MM>-<dd> <HH>:<mm>:<ss> <TimeZone>
|
"2018-06-19 16:15:41 PDT", "2018-06-19 16:15:41 -08:00" |
TimeZone ist optional. Fehlt die Angabe TimeZone (Zeitzone), dann wird UTC verwendet. |
<EEE>, <d> <MMM> <yyyy> <HH>:<mm>:<ss> <TimeZone>
|
"Tue, 19 Jun 2018 16:15:41 +0300", "19 June 2018 16:15:41" |
EEE ist optional. MMM kann auch als MMMM ausgedrückt werden. TimeZone ist ebenfalls optional. Fehlt die Angabe TimeZone (Zeitzone), dann wird UTC verwendet. |
<yyyy>-<MM>-<dd>T<HH>:<mm>:<ss>Z
|
"2018-06-19T16:15:41Z" |
Zeit in UTC. Bei " |
Sie müssen die Leerzeichen beachten. Übernehmen Sie Bindestriche, Doppelpunkte, Kommas sowie die Zeichen "T" und "Z" gemäß Vorgabe. Verwenden Sie zur Interpretation der Platzhalterwerte in der obigen Tabelle die folgende Mustersyntax:
Buchstabe | Datums- oder Uhrzeitkomponente | Darstellung |
---|---|---|
y
|
Jahr |
Jahr |
M
|
Monat des Jahres |
Monat |
d
|
Tag des Monats |
Tag |
H
|
Stunde des Tages (von 00 bis 23) | Zahl |
m
|
Minute der Stunde | Zahl |
s
|
Sekunden der Minute | Zahl |
E
|
Tag der Woche | Text |
Sich wiederholende Buchstaben im Muster geben die genaue Darstellung an. "HH" bedeutet zum Beispiel, dass Sie für Mitternacht "00" und nicht "0" verwenden müssen. "EEE" bedeutet, dass Sie "Tue" und nicht "Tuesday" (Dienstag) verwenden müssen. Gleichermaßen müssen Sie für "MM" zur Darstellung des Monats September "09" und nicht "9" angeben.
TimeZone
ist optional. Sie haben jedoch in dem von Ihnen ausgewählten Format folgende Möglichkeiten, die Zeitzone (TimeZone
) anzugeben:
- Name. Sie können den Namen der Zeitzone angeben, wie zum Beispiel GMT oder PDT. Bei den Werten muss die Groß- und Kleinschreibung nicht beachtet werden.
- Unterschied zu GMT. Sie können eine Zeitzone entsprechend dem Unterschied zu GMT angeben. Beispiel: GMT-08:00. Bei den Werten muss die Groß- und Kleinschreibung nicht beachtet werden.
- Zeitzone nach ISO 8601. Sie können eine Zeitzone gemäß der Norm ISO 8601 angeben. Beispiel: -08, -0800 oder -08:00.
Anstatt eines der oben angegebenen Formate zu verwenden, können Sie einen Datums-/Uhrzeitwert auch als Konstante now
(jetzt) angeben. Die Konstante now
stellt die aktuelle Uhrzeit bis zur Granularität Sekunden in einer Minute dar.
Schließlich können Sie Zeitintervalle zu jedem Datums-/Uhrzeitwert hinzufügen oder davon subtrahieren. Sie können beispielsweise Ressourcen abfragen, die innerhalb von fünf Minuten einer bestimmten Uhrzeit erstellt wurden. Die folgenden Zeitintervalle werden von Search unterstützt:
Buchstabe | Datums- oder Uhrzeitkomponente |
---|---|
s
|
Sekunden |
m
|
Minuten |
h
|
Stunden |
d
|
Tage |
w
|
Wochen |
Verwenden Sie eines der folgenden Formate, um ein Zeitintervall in Verbindung mit einem Datums-/Uhrzeitwert anzugeben:
- jetzt - 3h
- 2018-06-19 16:15:41 PDT + 1H
Sortierung
Die letzte Klausel einer Ressourcenabfrage ist die Klausel sorted by
. Sie ist optional. Die Klausel sorted by
sortiert die von Cloud Advisor zurückgegebenen Ergebnisse basierend auf dem Feldnamen und listet sie gemäß dem angegebenen Wert für order
auf. Wenn Sie keine Sortierreihenfolge angeben, werden die Ergebnisse standardmäßig immer in absteigender Reihenfolge nach Erstellungsdatum und -uhrzeit sortiert.
Die Klausel sorted by
kann Folgendes enthalten:
fieldName
: Das Feld, nach dem Cloud Advisor die Ergebnisse sortiert. Sie können jedes Feld einer beliebigen Ressource angeben. Ressourcen, die das von Ihnen angegebene Feld nicht enthalten, werden nach den Ressourcen aufgelistet, die das von Ihnen angegebene Feld enthalten.order
: Sie können entweder "asc" oder "desc" angeben. Bei der Angabe asc werden die Ergebnisse in aufsteigender Reihenfolge aufgelistet. Bei der Angabe desc werden die Ergebnisse in absteigender Reihenfolge aufgelistet.