Creación de consultas de Cloud Advisor
Revise los aspectos básicos del lenguaje de consulta de Cloud Advisor, incluida una explicación sobre la sintaxis y las reglas para que pueda crear sus propias consultas.
Las consultas aplican condiciones de búsqueda a un juego de atributos y permiten ordenar los resultados. Si desea buscar en todos los tipos de recursos soportados y atributos de recursos y no necesita resultados de búsqueda ordenados, no es necesario agregar órdenes de atributos.
Este tema incluye las siguientes secciones:
Permisos de IAM necesarios
Los recursos que verá en los resultados de la consulta dependen de los permisos que tenga para el tipo de recurso. No verá necesariamente los resultados de cada recurso en el compartimento o arrendamiento. Por ejemplo, si su cuenta de usuario no está asociada a una política que le otorgue la capacidad de, al menos, inspect
el tipo de recurso
, no puede consultar recursos de Cloud Advisor. (El verbo optimizer-resource-action
inspect
permite mostrar y obtener recursos). En su lugar, Cloud Advisor no muestra resultados para las consultas.
Para obtener más información sobre las políticas, consulte Funcionamiento de las políticas. Para obtener información sobre los permisos específicos necesarios para la operación de API de lista para el tipo de recurso necesario, consulte Creación de políticas de Cloud Advisor.
Información básica sobre consultas
En los siguientes ejemplos se muestra la sintaxis básica de una consulta de Cloud Advisor:
query ResourceAction where <conditions> sorted by <fieldName> <order>
O bien:
query ResourceAction matching <keywords>
Cloud Advisor no tiene en cuenta los espacios en blanco, la sangría ni los intervalos de línea. Las consultas de ejemplo incluyen indentación para mejorar la lectura. Con el fin de mostrar solo la sintaxis, los corchetes angulares (<>) y el texto en cursiva indican variables, que pueden constar de una o más palabras clave.
En una consulta, las cláusulas incluyen lo siguiente:
query
: (necesario) selecciona los recursos que se devolverán en función de las cláusulas posteriores. Las sentencias de la consulta siempre comienzan por la palabraquery
.where
: hace coincidir los recursos con lasconditions
especificadas.matching
: hace coincidir los recursos con el texto especificado independientemente de si el texto coincide exactamente, coincide con el tipo de recurso o aparece en un atributo de recurso indexado.sorted by
: ordena los recursos segúnfieldName
en el orden especificado por la cláusulaorder
. Si no incluye esta cláusula, Cloud Advisor muestra los resultados por fecha de creación en orden descendente, mostrando en primer lugar los recursos más recientes.
Las cláusulas son opcionales, a menos que se indique lo contrario. Para la coincidencia, puede utilizar la cláusula where
y la cláusula matching
por separado o conjuntamente.
Condiciones
La cláusula where
aplica conditions
que filtran los resultados devueltos por Cloud Advisor. Puede especificar una o más sentencias de condición. Para obtener más información sobre varias condiciones, consulte Condiciones de agrupación.
En una consulta, conditions
consta de lo siguiente:
<fieldName> <operation> <value>
La palabra clave fieldName
es el atributo de recurso con respecto al cual se evalúan operation
y value
seleccionados de ese atributo. Cada campo está asociado a un tipo de campo. El tipo de campo indica el formato esperado para cualquier valor de ese campo. El tipo de operation
que puede utilizar en una sentencia conditions
depende del tipo de campo.
En la consulta conditions
, una operation
es un operador de comparación que se aplica al value
en la sentencia. La palabra clave value
hace referencia al valor de fieldName
especificado. Cloud Advisor evalúa si el atributo especificado del tipo de recurso seleccionado coincide o no con value
, según la operación. En una consulta, debe introducir cualquier valor de cadena o fecha-hora entre comillas de apertura y cierre simples rectas (ˈ) o comillas dobles (").
En la siguiente tabla se describen las operaciones soportadas para consultas de recursos:
Operación | Descripción | Tipos de campos soportados | ¿Es sensible a mayúsculas/minúsculas? | Ejemplo |
---|---|---|---|---|
=
|
Igual o coincidencia exacta para cadenas |
Cadena, entero, racional, booleano, fecha-hora |
No |
Si el value fuera ˈbackUpˈ, coincidiría con "backup", "BACKUP", "BackUp", "backUp" o con cualquier otra variación de mayúsculas/minúsculas. |
!=
|
Distinto de |
Cadena, entero, racional, booleano, fecha-hora |
No |
Si el value fuera ˈbackUpˈ, coincidiría con cualquier valor que no sea igual a "backUp", "backup" o cualquier otra variación de mayúsculas/minúsculas. También coincidiría con cualquier valor que no contenga los caracteres 'backup' en ese orden. |
==
|
Estrictamente igual |
Cadena |
Sí |
Si el value fuera ˈbackUpˈ, solo coincidiría con "backUp" y con ninguna otra variación de mayúsculas/minúsculas. |
!==
|
Estrictamente es distinto de |
Cadena |
Sí |
Si el value fuera ˈbackUpˈ, coincidiría con "backup", "BACKup" o cualquier elemento, excepto "backUp", con esa combinación exacta. |
=~
|
Contiene |
Cadena |
No |
Si el value fuera ˈbackUpˈ, coincidiría con cualquier elemento que fuera igual a "backup", "BACKUP", "BackUp", "backUp" o cualquier otra variación de mayúsculas/minúsculas o que contenga dichos caracteres en ese orden, junto con otros caracteres. |
>=
|
Mayor o igual que |
Entero, racional, fecha-hora |
No aplicable |
Para una consulta con size >= 5 como condición, todos los resultados tendrán un valor de 5 o superior en el campo denominado size. |
>
|
Mayor que |
Entero, racional, fecha-hora |
No aplicable |
Para una consulta con size > 5 como condición, todos los resultados tendrán un valor superior a 5 en el campo denominado size. |
<=
|
Menor o Igual que |
Entero, racional, fecha-hora |
No aplicable |
Para una consulta con size <= 5 como condición, todos los resultados tendrán un valor de 5 o inferior en el campo denominado size. |
<
|
Menor que |
Entero, racional, fecha-hora |
No aplicable |
Para una consulta con size < 5 como condición, todos los resultados tendrán un valor de 5 o inferior en el campo denominado size. |
En la siguiente tabla se muestran algunos ejemplos de atributos de recursos que pertenecen a cada categoría de tipos de campos soportados. El tipo de campo indica el formato esperado para un campo determinado y el tipo de operation
con el que puede emparejarlo en una sentencia conditions
.
En la tabla no se incluyen todos los ejemplos posibles para un tipo de campo determinado. Si desea saber qué formato espera el servicio Cloud Advisor para un atributo de recurso específico, puede utilizar la interfaz de línea de comandos o la API para obtener más información sobre los atributos de recursos. También puede consultar la documentación de la API. La documentación de la API incluye una referencia de cada tipo de recurso soportado que especifica atributos, sus tipos de campo y restricciones.
Tipo | Ejemplo de atributos de recurso |
---|---|
Cadena | Nombres mostrados, estados del ciclo de vida, dominios de disponibilidad, etiquetas, bloques CIDR y URL |
Entero | Tamaño o longitud de un recurso |
Racional | Almacenamiento de datos disponible |
Booleano | Si una función está activada o configurada, si un recurso está en buen estado, si un recurso es público o privado, si algo es la última versión y si se permite algo. |
Fecha-hora | Fechas de creación, fechas de última actualización, fechas de último índice y reinicios de mantenimiento programados |
Condiciones de agrupación
Al incluir más de una sentencia de condición en una consulta, puede acotar los resultados según varios criterios. Puede agrupar varias condiciones mediante operadores lógicos &&
(ampersands para indicar un AND lógico) o ||
(barras verticales, para indicar un OR lógico). Por ejemplo:
resourceType = 'Compute' && status = 'Active' && regionName = 'us-ashburn-1'
No puede combinar dos operadores lógicos diferentes en la misma consulta a menos que ajuste los paréntesis alrededor de un grupo de predicados. De lo contrario, varias condiciones solo pueden usar el mismo operador lógico. Por ejemplo:
(resourceType = 'Compute' && status = 'Active' && regionName = 'us-region-1') || status != 'Implemented'
En el ejemplo anterior, todos los resultados devueltos tienen Compute como valor para resourceType, Active como valor para el estado y us-region-1 como valor para regionName, o el valor de su campo de estado es cualquier otro que no sea Implantado.
También se acepta el siguiente grupo:
status = 'Implemented' && (resourceType = 'Compute' || lifecycleState != 'FAILED')
En el ejemplo anterior, todos los resultados devueltos tienen implantado como valor para el estado y Compute como valor para resourceType o cualquier elemento que no sea FALLIDO para lifecycleState.
Cloud Advisor no realiza una evaluación de izquierda a derecha para reducir la ambigüedad o aclarar la intención.
Valores de fecha y hora
Puede especificar valores de fecha y hora mediante cualquiera de los siguientes formatos de cadena de patrón:
Formato | Ejemplos | Comentarios |
---|---|---|
<yyyy>-<MM>-<dd> <HH>:<mm>:<ss> <TimeZone>
|
'2018-06-19 16:15:41 PDT', '2018-06-19 16:15:41 -08:00' |
TimeZone es opcional. Si se omite TimeZone , se utilizará UTC. |
<EEE>, <d> <MMM> <yyyy> <HH>:<mm>:<ss> <TimeZone>
|
'Mar, 19 Jun 2018 16:15:41 +0300', '19 Junio 2018 16:15:41' |
EEE es opcional. MMM también se puede expresar como MMMM . TimeZone también es opcional. Si se omite TimeZone , se utilizará UTC. |
<yyyy>-<MM>-<dd>T<HH>:<mm>:<ss>Z
|
'2018-06-19T16:15:41Z' |
Tiempo en UTC. ' |
Debe respetar el espaciado. Interprete los guiones, los dos puntos, las comas y los caracteres "T" y "Z" literalmente. Para interpretar los valores de los marcadores de posición de la tabla anterior, puede consultar la siguiente sintaxis de patrones:
Letra | Componente de fecha u hora | Presentación |
---|---|---|
y
|
Año |
Año |
M
|
Mes del año |
Mes |
d
|
Día del mes |
Día |
H
|
Hora del día (de 00 a 23) | Número |
m
|
Minuto de la hora | Número |
s
|
Segundo del minuto | Número |
E
|
Día de la Semana | Texto |
Las letras de patrones repetidas indican la presentación exacta. Por ejemplo, "HH" significa que debe usar "00" y no "0" para representar la media noche. De forma similar, "EEE" significa "Mar" y no "Martes". Del mismo modo, para representar el mes de septiembre, es necesario '09' en lugar de '9'.
TimeZone
es opcional, pero en el formato elegido, puede especificar TimeZone
de cualquiera de las siguientes formas:
- Name. Puede especificar una zona horaria por su nombre, por ejemplo, GMT o PDT. Los valores son sensibles a mayúsculas/minúsculas.
- Valor de desfase de GMT. Puede especificar una zona horaria de acuerdo con su desfase de GMT. Por ejemplo, GMT-08:00. Los valores son sensibles a mayúsculas/minúsculas.
- Zona horaria ISO 8601. Puede especificar una zona horaria de acuerdo con los estándares ISO 8601. Por ejemplo, -08, -0800 o -08:000.
En lugar de utilizar uno de los formatos anteriores, también puede especificar un valor de fecha-hora como la constante now
. La constante now
representa la hora actual al nivel de granularidad de segundos de un minuto.
Por último, puede sumar o restar intervalos de tiempo de cualquier valor de fecha y hora. Por ejemplo, puede consultar los recursos que se crearon dentro de los cinco minutos de un período específico. La búsqueda soporta los siguientes intervalos de tiempo:
Letra | Componente de fecha u hora |
---|---|
s
|
Segundos |
m
|
Minutos |
h
|
Horas |
d
|
Días |
w
|
Semanas |
Para especificar un intervalo de tiempo en relación a un valor de fecha y hora, utilice uno de los siguientes formatos:
- ahora - 3 horas
- 2018-06-19 16:15:41 PDT + 1H
Ordenación
La última cláusula de una consulta de recurso es la cláusula sorted by
y es opcional. La cláusula sorted by
ordena los resultados devueltos por Cloud Advisor según el nombre del campo y los muestra según la opción order
que especifique. Por defecto, si no se especifica el orden de clasificación, los resultados siempre se ordenan por fecha y hora de creación en orden descendente.
En la cláusula sorted by
, puede especificar lo siguiente:
fieldName
: campo que utiliza Cloud Advisor para ordenar los resultados. Puede especificar cualquier campo de cualquier recurso. Los recursos que no contienen el campo que especifique se enumeran después de los recursos que los contienen.order
: puede especificar asc o desc. Al especificar asc, los resultados se mostrarán en orden ascendente. Al especificar desc, los resultados se mostrarán en orden descendente.