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 optimizer-resource-action erteilt, können Sie keine Cloud Advisor-Ressourcen abfragen. (Mit dem Verb 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 Wort query.
  • where: Gleicht Ressourcen mit den angegebenen conditions (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 dem fieldName (Feldnamen) in der Reihenfolge, die durch order 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 "T" und "Z" muss die Groß- und Kleinschreibung beachtet werden.

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.