Créer des interrogations Cloud Advisor

Consultez les informations de base sur le langage d'interrogation pour Cloud Advisor, ainsi qu'une explication de la syntaxe et des règles pour vous permettre de créer vos propres interrogations.

Les interrogations appliquent des conditions de recherche à un jeu d'attributs et vous permettent de trier les résultats. Pour rechercher tous les types de ressource et tous les attributs de ressource pris en charge sans trier les résultats de recherche, il n'est pas nécessaire d'ajouter l'ordre des attributs.

Autorisations GIA requises

Les ressources que vous voyez dans les résultats d'interrogation dépendent des autorisations en vigueur pour le type de ressource. Les résultats ne sont pas nécessairement affichés pour toutes les ressources dans le compartiment ou la location. Par exemple, si votre compte d'utilisateur n'est pas associé à une politique qui vous accorde, au moins, le rôle inspect pour le type de ressource optimizer-resource-action , vous ne pouvez pas lancer d'interrogation sur les ressources Cloud Advisor. (Le verbe inspect vous permet de lister et d'obtenir des ressources.) Cloud Advisor n'affiche pas de résultats pour les interrogations.

Pour plus d'informations sur les politiques, voir Fonctionnement des politiques. Pour plus d'informations sur les autorisations spécifiques requises pour l'opération d'API de liste pour votre type de ressource requis, voir Création de politiques Cloud Advisor.

Informations de base sur l'interrogation

Les exemples suivants présentent la syntaxe de base d'une interrogation Cloud Advisor :

query ResourceAction where <conditions> sorted by <fieldName>
                    <order>

                

Ou :

query ResourceAction matching <keywords>
                

Cloud Advisor ignore les blancs, les indentations et les saut de ligne. Les exemples d'interrogation comportent des indentations pour améliorer la lisibilité. Pour illustrer la syntaxe uniquement, les variables, qui peuvent être constituées d'un ou plusieurs mots clés, sont indiquées entre crochets (<>) et en italique.

Dans une interrogation, les clauses sont les suivantes :

  • query - (Obligatoire) Sélectionne les ressources à retourner en fonction des clauses suivantes. Les énoncés d'interrogation commencent toujours par le mot query.
  • where - Met en correspondance les ressources avec les conditions spécifiées.
  • matching - Met en correspondance les ressources avec le texte spécifié, qu'il corresponde exactement, qu'il corresponde au type de ressource ou qu'il apparaisse dans un attribut de ressource indexé.
  • sorted by - Trie les ressources en fonction de la variable fieldName dans l'ordre spécifié par le paramètre order. Si vous n'incluez pas cette clause, Cloud Advisor liste les résultats par date de création décroissante, les ressources les plus récentes s'affichant en premier.

Les clauses sont facultatives sauf indication contraire. À des fins de correspondance, vous pouvez utiliser les clauses where et matching séparément ou ensemble.

Conditions

La clause where applique des conditions qui filtrent les résultats retournés par Cloud Advisor. Vous pouvez indiquer un ou plusieurs énoncés de condition. Pour plus d'informations sur plusieurs conditions, voir Regroupement de conditions.

Dans une interrogation, les conditions sont les suivantes :


                        <fieldName>
                        <operation>
                        <value>
                    

Le mot clé fieldName est l'attribut de ressource par rapport auquel les paramètres operation et value de cet attribut sont évalués. Chaque champ est associé à un type de champ. Le type de champ indique le format attendu pour la valeur de ce champ. Le type de paramètre operation que vous pouvez utiliser dans un énoncé conditions dépend du type de champ.

Dans l'interrogation conditions, un paramètre operation est un opérateur de comparaison qui s'applique à l'élément value de l'énoncé. Le mot clé value fait référence à la valeur que vous avez spécifiée pour fieldName. Cloud Advisor évalue si l'attribut spécifié du type de ressource choisi correspond ou non à l'value, selon l'opération. Dans une interrogation, vous devez inclure une chaîne ou une valeur date-heure entre des apostrophes droites (ˈ) ou des guillemets (") d'ouverture et de fermeture.

Le tableau suivant présente les opérations prises en charge pour les interrogations de ressource :

Opération Description Types de champ pris en charge Sensible à la casse? Exemple
=

Est égal à ou présente une correspondance exacte pour les chaînes

Chaîne, nombre entier, nombre rationnel, valeur booléenne, date-heure

Non

Si l'élément value a pour valeur 'backUp', le résultat inclut les correspondances "backup", "BACKUP", "BackUp", "backUp" et toute autre variation de casse.
!=

N'est pas égal à

Chaîne, nombre entier, nombre rationnel, valeur booléenne, date-heure

Non

Si l'élément value a pour valeur 'backUp', le résultat inclut tout ce qui n'est pas égal à "backUp", "backup" ou toute autre variation de casse. Il correspond également à tout ce qui ne contient pas les caractères 'backup' dans cet ordre.
==

Est strictement égal à

Chaîne

Oui

Si l'élément value a pour valeur 'backUp', le résultat inclut uniquement "backUp" et aucune autre variation de casse.
!==

N'est pas strictement égal à

Chaîne

Oui

Si l'élément value a pour valeur 'backUp', le résultat inclut les correspondances "backup", "BACKup" ou toute autre chaîne à l'exception de "backUp", avec exactement cette casse.
=~

Contient

Chaîne

Non

Si l'élément value a pour valeur 'backUp', le résultat inclut toute correspondance égale à "backup", "BACKUP", "BackUp", "backUp" ou toute autre variation de casse, ou contient ces caractères dans cet ordre, avec d'autres caractères.
>=

Supérieur ou égal à

Nombre entier, valeur rationnelle, date-heure

Non applicable

Pour une interrogation comportant la condition size >= 5, tous les résultats ont une valeur supérieure ou égale à 5 dans le champ size.
>

Supérieur à

Nombre entier, valeur rationnelle, date-heure

Non applicable

Pour une interrogation comportant la condition size > 5, tous les résultats ont une valeur supérieure à 5 dans le champ size.
<=

Inférieur ou égal à

Nombre entier, valeur rationnelle, date-heure

Non applicable

Pour une interrogation comportant la condition size <= 5, tous les résultats ont une valeur inférieure ou égale à 5 dans le champ size.
<

Inférieur à

Nombre entier, valeur rationnelle, date-heure

Non applicable

Pour une interrogation comportant la condition size < 5, tous les résultats ont une valeur inférieure ou égale à 5 dans le champ size.

Le tableau suivant présente quelques exemples d'attributs de ressource appartenant à chaque catégorie de types de champ pris en charge. Le type de champ vous indique le format attendu pour un champ donné et le type operation que vous pouvez associer à un énoncé conditions.

Le tableau n'inclut pas tous les exemples possibles pour un type de champ donné. Si vous voulez savoir quel format le service Cloud Advisor attend pour un attribut de ressource spécifique, vous pouvez utiliser l'interface de ligne de commande ou l'API pour en savoir plus sur les attributs de ressource. Vous pouvez également consulter la documentation sur l'API. La documentation sur l'API inclut des informations de référence sur chaque type de ressource pris en charge : attributs, types de champ et toute restriction applicable.

Type Exemples d'attributs de ressource
Chaîne Noms d'affichage, états du cycle de vie, domaines de disponibilité, marqueurs, blocs CIDR et URL
Nombre entier Taille ou longueur d'une ressource
Valeur rationnelle Stockage de données disponible
Valeur booléenne Indique si une fonction est activée ou configurée, si une ressource est saine, si une ressource est publique ou privée, si un élément est la dernière version et si une valeur est autorisée
Date-heure Dates de création, dates de dernière mise à jour, dates de dernière indexation et redémarrages de maintenance programmés

Regroupement de conditions

En incluant plusieurs énoncés de condition dans une interrogation, vous pouvez affiner les résultats en fonction de plusieurs critères. Vous pouvez regrouper plusieurs conditions en utilisant les opérateurs logiques && (perluètes, pour indiquer un ET logique) ou || (barres verticales, pour indiquer un OU logique). Par exemple :

resourceType = 'Compute' && status = 'Active' && regionName = 'us-ashburn-1'

Vous ne pouvez pas combiner deux opérateurs logiques différents dans la même interrogation, sauf si vous encapsulez un groupe de prédicats entre parenthèses. Dans le cas contraire, plusieurs conditions peuvent seulement utiliser le même opérateur logique. Par exemple :

(resourceType = 'Compute' && status = 'Active' && regionName = 'us-region-1') || status != 'Implemented'

Dans l'exemple précédent, tous les résultats retournés ont la valeur Calcul pour resourceType, Actif pour le statut et us-region-1 pour regionName, ou la valeur de leur champ de statut est différente de Mis en oeuvre.

Le groupe suivant est également acceptable :

status = 'Implemented' && (resourceType = 'Compute' || lifecycleState != 'FAILED')

Dans l'exemple précédent, tous les résultats retournés ont la valeur Mis en oeuvre pour le statut et Compute pour resourceType ou tout élément qui n'a pas FAILED pour lifecycleState.

Cloud Advisor n'effectue pas d'évaluation de gauche à droite pour réduire l' ambiguïté ou clarifier l'intention.

Valeurs de date et d'heure

Vous pouvez indiquer des valeurs de date et d'heure en utilisant l'un des formats de chaîne de modèle suivants :

Format Exemples Commentaires
<yyyy>-<MM>-<dd> <HH>:<mm>:<ss> <TimeZone>

'2018-06-19 16:15:41 PDT', '2018-06-19 16:15:41 -08:00'

TimeZone est facultatif. Si TimeZone est omis, UTC est utilisé.
<EEE>, <d> <MMM> <yyyy> <HH>:<mm>:<ss> <TimeZone>

'Mar, 19 Jun 2018 16:15:41 +0300', '19 Juin 2018 16:15:41'

EEE est facultatif. MMM peut également être exprimé sous la forme MMMM. TimeZone est également facultatif. Si TimeZone est omis, UTC est utilisé.
<yyyy>-<MM>-<dd>T<HH>:<mm>:<ss>Z

'2018-06-19T16:15:41Z'

Heure en UTC. 'T' et 'Z' sont sensibles à la casse.

Vous devez respecter les espaces. Interprétez les tirets, les deux-points, les virgules et les caractères 'T' et 'Z' de manière littérale. Pour interpréter les valeurs des paramètres fictifs dans le tableau précédent, reportez-vous à la syntaxe de modèle suivante :

Lettre Composant de date ou d'heure Présentation
y

Année

Année

M

Mois de l'année

Mois

d

Jour du mois

Jour

H Heure du jour (de 00 à 23) Nombre
m Minute de l'heure Nombre
s Secondes de la minute Nombre
E Jour de la semaine Texte

Les lettres du modèle sont répétées pour indiquer la présentation exacte. Par exemple, 'HH' signifie que vous devez utiliser '00' et non '0' pour représenter minuit. De même, 'EEE' signifie 'Mar' et non 'Mardi'. De même, 'MM' requiert '09' au lieu de '9' pour représenter le mois de septembre.

TimeZone est facultatif, mais selon le format choisi, vous pouvez spécifier TimeZone de l'une des façons suivantes :

  • Nom. Le nom d'un fuseau horaire peut être GMT ou PDT. Les valeurs ne sont pas sensibles à la casse.
  • Décalage GMT. Vous pouvez indiquer un fuseau horaire en fonction de son décalage par rapport à l'heure GMT. Par exemple, GMT-08 :00. Les valeurs ne sont pas sensibles à la casse.
  • Fuseau horaire ISO 8601. Vous pouvez indiquer un fuseau horaire en fonction des normes ISO 8601. Par exemple, -08, -0800 ou -08 :00.

Au lieu d'utiliser l'un des formats précédents, vous pouvez spécifier une valeur de date-heure avec la constante now. La constante now représente l'heure courante au niveau de granularité des secondes dans une minute.

Enfin, vous pouvez ajouter ou soustraire des intervalles de temps à toute valeur de date-heure. Par exemple, vous pouvez effectuer une interrogation sur les ressources qui ont été créées dans un délai de cinq minutes par rapport à une heure spécifique. La recherche prend en charge les intervalles de temps suivants :

Lettre Composant de date ou d'heure
s

Secondes

m

Minutes

h

Heures

d Jours
w Semaines

Pour spécifier un intervalle de temps par rapport à une valeur de date-heure, utilisez l'un des formats suivants :

  • maintenant - 3h
  • 2018-06-19 16:15:41 PDT + 1H

Tri

La dernière clause d'une interrogation de ressource est la clause sorted by, qui est facultative. La clause sorted by commande les résultats retournés par Cloud Advisor en fonction du nom du champ et les liste selon la order indiquée. Par défaut, si vous n'indiquez pas d'ordre de tri, les résultats sont toujours triés par date-heure de création dans l'ordre décroissant.

Dans la clause sorted by, vous pouvez spécifier les éléments suivants :

  • fieldName - Champ utilisé par Cloud Advisor pour trier les résultats. Vous pouvez spécifier n'importe quel champ de n'importe quelle ressource. Les ressources qui ne contiennent pas le champ indiqué sont listées après les ressources qui le contiennent.
  • order - Vous pouvez spécifier asc ou desc. Si vous indiquez asc, les résultats sont listés par ordre croissant. Si vous indiquez desc, les résultats sont listés par ordre décroissant.