Creazione di query Cloud Advisor
Rivedere le nozioni di base del linguaggio di query per Cloud Advisor, inclusa una spiegazione della sintassi e delle regole, in modo da poter creare query personalizzate.
Le query applicano le condizioni di ricerca a un set di attributi e consentono di ordinare i risultati. Se si desidera eseguire una ricerca tra tutti i tipi di risorsa e gli attributi di risorsa supportati e non è necessario ordinare i risultati della ricerca, non è necessario aggiungere l'ordinamento degli attributi.
Questo argomento include le sezioni riportate di seguito.
Autorizzazioni IAM necessarie
Le risorse visualizzate nei risultati delle query dipendono dalle autorizzazioni esistenti per il tipo di risorsa. Non necessariamente vengono visualizzati i risultati per ogni risorsa nel compartimento o nella tenancy. Ad esempio, se il proprio account utente non è associato a un criterio che concede la possibilità di almeno inspect
il tipo di risorsa
, non sarà possibile eseguire query per le risorse Cloud Advisor. Il verbo optimizer-resource-action
inspect
consente di elencare e ottenere risorse. Cloud Advisor non mostra invece risultati per le query.
Per ulteriori informazioni sui criteri, vedere Funzionamento dei criteri. Per informazioni sulle autorizzazioni specifiche necessarie per l'operazione API di lista per il tipo di risorsa richiesto, vedere Creazione dei criteri di Cloud Advisor.
Funzioni base query
Gli esempi riportati di seguito mostrano la sintassi di base di una query Cloud Advisor.
query ResourceAction where <conditions> sorted by <fieldName> <order>
Oppure:
query ResourceAction matching <keywords>
Cloud Advisor ignora lo spazio vuoto, l'indentazione e le interruzioni di riga. Le query di esempio includono l'indentazione per migliorare la leggibilità. Per dimostrare solo la sintassi, le parentesi angolari (<>) e il testo in corsivo indicano variabili che possono essere costituite da una o più parole chiave.
In una query, le clausole includono quanto riportato di seguito.
query
: (Obbligatorio) seleziona le risorse da restituire in base alle clausole successive. Le istruzioni di query iniziano sempre con la parolaquery
.where
: abbina le risorse all'conditions
specificato.matching
: abbina le risorse al testo specificato indipendentemente dal fatto che il testo corrisponda esattamente, corrisponda al tipo di risorsa o venga visualizzato in un attributo di risorsa indicizzato.sorted by
: ordina le risorse secondofieldName
nell'ordine specificato daorder
. Se non si include questa clausola, Cloud Advisor elenca i risultati in base alla data di creazione in ordine decrescente, con le risorse più recenti elencate per prime.
Le clausole sono facoltative se non diversamente indicato. Per la corrispondenza, è possibile utilizzare la clausola where
e la clausola matching
separatamente o insieme.
Condizioni
La clausola where
applica conditions
che filtra i risultati restituiti da Cloud Advisor. È possibile specificare una o più istruzioni di condizione. Per ulteriori informazioni su più condizioni, vedere Condizioni di raggruppamento.
In una query, conditions
è costituito dai seguenti elementi:
<fieldName> <operation> <value>
La parola chiave fieldName
è l'attributo risorsa in base al quale vengono valutati il valore operation
e il valore value
scelto per tale attributo. Ogni campo è associato a un tipo di campo. Il tipo di campo indica il formato previsto per qualsiasi valore in tale campo. Il tipo di operation
che è possibile utilizzare in un'istruzione conditions
dipende dal tipo di campo.
Nella query conditions
, un operation
è un operatore di confronto che si applica al value
nell'istruzione. La parola chiave value
fa riferimento al valore di fieldName
specificato. Cloud Advisor valuta se l'attributo specificato del tipo di risorsa scelto corrisponde o non corrisponde a value
, in base all'operazione. In una query è necessario racchiudere qualsiasi valore stringa o data/ora tra aprendo e chiudendo virgolette semplici (ˈ) o virgolette doppie (").
Nella tabella riportata di seguito vengono descritte le operazioni supportate per le query delle risorse.
Operazione | descrizione; | Tipi di campo supportati | Maiusc? | Esempio |
---|---|---|---|---|
=
|
Uguale o corrispondenza esatta per le stringhe |
Stringa, intero, razionale, booleano, data/ora |
No |
Se value fosse ˈbackUpˈ, corrisponderebbe a "BACKUP", "BACKUP", "BackUp", "backUp" o a qualsiasi altra variazione nell'involucro. |
!=
|
È diverso da |
Stringa, intero, razionale, booleano, data/ora |
No |
Se value fosse ˈbackUpˈ, corrisponderebbe a qualsiasi elemento che non sia uguale a "backUp", "backup" o a qualsiasi altra variazione nell'involucro. Corrisponderebbe anche a qualsiasi cosa che non contenga i caratteri 'backup' in quell'ordine. |
==
|
Rigorosamente uguale a |
Stringa |
Sì |
Se value fosse ˈbackUpˈ, corrisponderebbe solo a "backUp" e nessun'altra variazione nell'involucro. |
!==
|
Rigorosamente non uguale a |
Stringa |
Sì |
Se il valore value fosse ˈbackUpˈ, corrisponderebbe a "backup", "BACKup" o a qualsiasi elemento tranne "backUp", con tale involucro esatto. |
=~
|
Contiene |
Stringa |
No |
Se value fosse ˈbackUpˈ, corrisponderebbe a qualsiasi elemento che sia uguale a "BACKUP", "BACKUP", "BackUp", "backUp" o a qualsiasi altra variazione nell'involucro o che contenga tali caratteri in tale ordine, insieme ad altri caratteri. |
>=
|
Maggiore o uguale a |
Numero intero, razionale, data/ora |
Non applicabile |
Per una query in cui la condizione è size >= 5 , tutti i risultati hanno un valore uguale o superiore a 5 nel campo denominato size. |
>
|
Maggiore di |
Numero intero, razionale, data/ora |
Non applicabile |
Per una query in cui la condizione è size > 5 , tutti i risultati hanno un valore maggiore di 5 nel campo denominato dimensione. |
<=
|
minore o uguale a |
Numero intero, razionale, data/ora |
Non applicabile |
Per una query in cui la condizione è size <= 5 , tutti i risultati hanno un valore minore o uguale a 5 nel campo denominato size. |
<
|
Meno di |
Numero intero, razionale, data/ora |
Non applicabile |
Per una query in cui la condizione è size < 5 , tutti i risultati hanno un valore minore o uguale a 5 nel campo denominato size. |
Nella tabella seguente sono elencati alcuni esempi di attributi risorsa appartenenti a ciascuna categoria di tipi di campo supportati. Il tipo di campo indica il formato previsto per un determinato campo e il tipo di operation
a cui è possibile associarlo in un'istruzione conditions
.
La tabella non include tutti gli esempi possibili per un determinato tipo di campo. Se si desidera conoscere il formato previsto dal servizio Cloud Advisor per un attributo di risorsa specifico, è possibile utilizzare l'interfaccia della riga di comando o l'API per ulteriori informazioni sugli attributi delle risorse. È inoltre possibile consultare la documentazione dell'API. La documentazione API include un riferimento per ogni tipo di risorsa supportato che specifica gli attributi, i relativi tipi di campo ed eventuali limitazioni.
Digitare | Attributi risorsa di esempio |
---|---|
Stringa | Visualizza nomi, stati del ciclo di vita, domini di disponibilità, tag, blocchi CIDR e URL |
Numero intero | Dimensione o lunghezza di una risorsa |
Razionale | Storage dati disponibile |
Valore booleano | Indica se una funzione è abilitata o configurata, se una risorsa è in buono stato, se una risorsa è pubblica o privata, se un elemento è la versione più recente e se è consentito |
Data/ora | Date di creazione, date dell'ultimo aggiornamento, date dell'ultima indicizzazione e riavvii della manutenzione pianificata |
Raggruppamento di condizioni
Includendo più di un'istruzione di condizione in una query, è possibile perfezionare i risultati in base a più criteri. È possibile raggruppare più condizioni utilizzando gli operatori logici &&
(e commerciale, per indicare un AND logico) o ||
(barre verticali, per indicare un OR logico). Ad esempio:
resourceType = 'Compute' && status = 'Active' && regionName = 'us-ashburn-1'
È possibile combinare due operatori logici diversi nella stessa query solo se si esegue il wrapping delle parentesi attorno a un gruppo di predicati. In caso contrario, più condizioni possono utilizzare solo lo stesso operatore logico. Ad esempio:
(resourceType = 'Compute' && status = 'Active' && regionName = 'us-region-1') || status != 'Implemented'
Nell'esempio precedente, tutti i risultati restituiti hanno Compute come valore per resourceType, Active come valore per lo stato e us-region-1 come valore per regionName oppure il valore del relativo campo di stato è diverso da Implementato.
È accettabile anche il seguente gruppo:
status = 'Implemented' && (resourceType = 'Compute' || lifecycleState != 'FAILED')
Nell'esempio precedente, tutti i risultati restituiti sono stati implementati come valore per lo stato e Compute come valore per resourceType o per qualsiasi elemento non NON RIUSCITO per lifecycleState.
Cloud Advisor non esegue una valutazione da sinistra a destra per ridurre l'ambiguità o chiarire l'intento.
Valori data e ora
È possibile specificare valori di data e ora utilizzando uno dei seguenti formati di stringa di pattern:
Formato | Esempi | commenti |
---|---|---|
<yyyy>-<MM>-<dd> <HH>:<mm>:<ss> <TimeZone>
|
"2018-06-19 16:15:41 PDT", "2018-06-19 16:15:41 -08:00" |
TimeZone è facoltativo. Se TimeZone viene omesso, viene utilizzato UTC. |
<EEE>, <d> <MMM> <yyyy> <HH>:<mm>:<ss> <TimeZone>
|
"Mar 19 giu 2018 16:15:41 +0300", "19 giugno 2018 16:15:41" |
EEE è facoltativo. MMM può anche essere espresso come MMMM . TimeZone è anche facoltativo. Se TimeZone viene omesso, viene utilizzato UTC. |
<yyyy>-<MM>-<dd>T<HH>:<mm>:<ss>Z
|
'2018-06-19T16:15:41Z' |
Tempo in ora UTC. ' |
È necessario osservare la spaziatura. Interpretare trattini, due punti, virgole e i caratteri 'T' e 'Z' letteralmente. Per interpretare i valori segnaposto nella tabella precedente, è possibile fare riferimento alla seguente sintassi del pattern:
Letter | Componente di data o ora | Presentazione |
---|---|---|
y
|
Anno |
Anno |
M
|
Mese dell'anno |
mese |
d
|
Giorno del mese |
Giorno |
H
|
Ora del giorno (da 00-23) | Numerico |
m
|
Minuto dell'ora | Numerico |
s
|
Secondi del minuto | Numerico |
E
|
Giorno della settimana. | Testo |
Le lettere ripetute indicano la loro esatta presentazione. Ad esempio, 'HH' significa che è necessario utilizzare '00' e non '0' per rappresentare la mezzanotte. Allo stesso modo, "EEE" significa "Mar" e non "Martedì". Allo stesso modo, 'MM' richiede '09' invece di '9' per rappresentare il mese di settembre.
TimeZone
è facoltativo, ma nel formato scelto è possibile specificare TimeZone
in uno dei seguenti modi:
- Nome: È possibile specificare un fuso orario in base al nome, ad esempio GMT o PDT. I valori non fanno distinzione tra casi.
- Valore offset GMT. È possibile specificare un fuso orario in base al relativo offset GMT. ad esempio GMT-08:00. I valori non fanno distinzione tra casi.
- Fuso orario ISO 8601. È possibile specificare un fuso orario in base agli standard ISO 8601. Ad esempio, -08, -0800, o -08:00.
Anziché utilizzare uno dei formati precedenti, è inoltre possibile specificare un valore data/ora come costante now
. La costante now
rappresenta l'ora corrente fino al livello di granularità dei secondi in un minuto.
Infine, è possibile aggiungere o sottrarre intervalli di tempo da qualsiasi valore di data e ora. Ad esempio, è possibile eseguire una query per le risorse create entro cinque minuti da un'ora specifica. La ricerca supporta i seguenti intervalli di tempo:
Letter | Componente di data o ora |
---|---|
s
|
secondi |
m
|
minuti |
h
|
Ore |
d
|
Giorni |
w
|
settimane |
Per specificare un intervallo di tempo in relazione a un valore data/ora, utilizzare uno dei seguenti formati:
- ora - 3h
- 2018-06-19 16:15:41 PDT + 1 ORA
Ordinamento
L'ultima clausola di una query di risorsa è la clausola sorted by
ed è facoltativa. La clausola sorted by
ordina i risultati restituiti da Cloud Advisor in base al nome del campo e li elenca in base al order
specificato. Per impostazione predefinita, se non si specifica il criterio di ordinamento, i risultati vengono sempre ordinati in base alla data e all'ora create in ordine decrescente.
Nella clausola sorted by
è possibile specificare:
fieldName
: il campo utilizzato da Cloud Advisor per ordinare i risultati. È possibile specificare qualsiasi campo di qualsiasi risorsa. Le risorse che non contengono il campo specificato vengono elencate dopo le risorse che lo fanno.order
: è possibile specificare asc o desc. Se si specifica asc, i risultati vengono elencati in ordine crescente. Se si specifica desc, i risultati vengono visualizzati in ordine decrescente.