

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Crear grupos basados en consultas en Grupos de recursos de AWS
<a name="gettingstarted-query"></a>

## Tipos de consultas de grupos de recursos
<a name="getting_started-query_types"></a>

En Grupos de recursos de AWS, una *consulta* es la base de un grupo basado en consultas. Puede basar un grupo de recursos en uno de los dos tipos de consultas.

 **Consultas basadas en etiquetas**   
Las consultas basadas en etiquetas incluyen listas de tipos de recursos que se especifican con el formato siguiente `AWS::service::resource`, así como etiquetas. Las *etiquetas* son claves que ayudan a identificar y ordenar los recursos de la organización. Opcionalmente, las etiquetas incluyen valores para las claves.  
Para una consulta basada en etiquetas, también debe especificar las etiquetas compartidas por los recursos que desea que sean miembros del grupo. Por ejemplo, si desea crear un grupo de recursos que tenga todas las instancias de Amazon EC2 y los buckets de Amazon S3 que está utilizando para llevar a cabo la etapa de pruebas de una aplicación y dispone de instancias y buckets que se han etiquetado de esta manera, elija los tipos de recurso `AWS::EC2::Instance` y `AWS::S3::Bucket` en la lista desplegable y, a continuación, especifique la clave de etiqueta **Stage** con un valor de etiqueta de **Test**.  
La sintaxis del parámetro `ResourceQuery` de un grupo de recursos basado en etiquetas contiene los siguientes elementos:  
+  `Type` 

  Este elemento indica qué tipo de consulta define este grupo de recursos. Para crear un grupo de recursos basado en etiquetas, especifique el valor `TAG_FILTERS_1_0` de la siguiente manera:

  ```
  "Type": "TAG_FILTERS_1_0"
  ```
+  `Query` 

   Este elemento define la consulta real que se utiliza para compararla con los recursos. Contiene una representación de cadena de una estructura JSON con los siguientes elementos:
  +  `ResourceTypeFilters` 

    Este elemento limita los resultados solo a los tipos de recursos que coinciden con el filtro. Puede especificar los valores siguientes:
    + `"AWS::AllSupported"`: para especificar que los resultados pueden incluir recursos de cualquier tipo que coincidan con la consulta y que actualmente son admitidos por el servicio Resource Groups.
    + `"AWS::service-id::resource-type`: una lista separada por comas de cadenas de especificación de tipos de recursos con este formato: , como por ejemplo `"AWS::EC2::Instance"`.
  +  `TagFilters` 

    Este elemento especifica los pares de key/value cadenas que se comparan con las etiquetas adjuntas a los recursos. Los que tengan una clave de etiqueta y un valor que coincidan con el filtro se incluyen en el grupo. Cada filtro consta de los siguientes elementos:
    + `"Key"`: una cadena con un nombre de clave. Únicamente los recursos de la cuenta que están etiquetados con un par de clave-valor coincidente con las siguientes claves:
    + `"Values"`: una cadena con una lista de valores separados por comas para la clave especificada. Únicamente los recursos de la cuenta que están etiquetados con un par de clave-valor coincidente son miembros del grupo.
Todos estos elementos JSON deben combinarse en una representación de cadena de una sola línea de la estructura JSON. Por ejemplo, considere una `Query` con la siguiente estructura JSON de ejemplo. Esta consulta debe coincidir únicamente con las instancias de Amazon EC2 que tengan la etiqueta “Stage” con el valor “Test”.  

```
{
    "ResourceTypeFilters": [ "AWS::EC2::Instance" ],
    "TagFilters": [
        {
            "Key": "Stage",
            "Values": [ "Test" ]
        }
    ]
}
```
Ese JSON se puede representar como la siguiente cadena de una sola línea y se puede usar como el valor del elemento `Query`. Como el valor de una estructura JSON debe ser una cadena entre comillas dobles, debe evitar los caracteres de comillas dobles o barras diagonales incrustados precediendo a cada uno de ellos con una barra invertida, como se muestra a continuación:  

```
"Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"
```
La cadena `ResourceQuery` completa se representa como se muestra aquí, como un parámetro de comando CLI:  

```
--resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}'
```

  **basadas en una pila de CloudFormation **   
En una consulta CloudFormation basada en pilas, eliges una CloudFormation pila de tu cuenta en la región actual y, a continuación, eliges los tipos de recursos de la pila que quieres que formen parte del grupo. Puede basar la consulta en una sola CloudFormation pila.   
Una CloudFormation pila puede contener otras pilas CloudFormation «secundarias». Sin embargo, un grupo de recursos basado en una pila “principal” no obtiene todos los recursos de las pilas secundarias como miembros del grupo. Los grupos de recursos agregan las pilas secundarias al grupo de recursos de la pila principal como miembros de un solo grupo y no las amplían.
Resource Groups admite consultas basadas en CloudFormation pilas que tienen uno de los siguientes estados.  
+ `CREATE_COMPLETE`
+ `CREATE_IN_PROGRESS`
+ `DELETE_FAILED`
+ `DELETE_IN_PROGRESS`
+ `REVIEW_IN_PROGRESS`
Solo los recursos que se crean directamente como parte de la pila de la consulta se incluyen en el grupo de recursos. Los recursos creados posteriormente por los miembros de la CloudFormation pila no se convierten en miembros del grupo. Por ejemplo, si un grupo de autoescalado es creado CloudFormation como parte de la pila, entonces ese grupo de autoescalado ***es*** miembro del grupo. Sin embargo, una instancia de Amazon EC2 creada por ese grupo de autoscalamiento como parte de su operación ***no es*** miembro del grupo de recursos basado en pilas. CloudFormation 
Si crea un grupo basado en una CloudFormation pila y el estado de la pila cambia a uno que ya no se admite como base para una consulta de grupo, por ejemplo, el grupo de recursos sigue existiendo`DELETE_COMPLETE`, pero no tiene recursos de miembros.

Después de crear un grupo de recursos, puede realizar tareas en los recursos del grupo.

La sintaxis del `ResourceQuery` parámetro de un grupo de recursos CloudFormation basado en una pila contiene los siguientes elementos:
+  `Type` 

  Este elemento indica qué tipo de consulta define este grupo de recursos. 

  Para crear un grupo de recursos CloudFormation basado en una pila, especifique el valor `CLOUDFORMATION_STACK_1_0` de la siguiente manera:

  ```
  "Type": "CLOUDFORMATION_STACK_1_0"
  ```
+  `Query` 

   Este elemento define la consulta real que se utiliza para compararla con los recursos. Contiene una representación de cadena de una estructura JSON con los siguientes elementos:
  +  `ResourceTypeFilters` 

    Este elemento limita los resultados solo a los tipos de recursos que coinciden con el filtro. Puede especificar los valores siguientes:
    + `"AWS::AllSupported"`: para especificar que los resultados pueden incluir recursos de cualquier tipo que coincidan con la consulta.
    + `"AWS::service-id::resource-type`: una lista separada por comas de cadenas de especificación de tipos de recursos con este formato: , como por ejemplo `"AWS::EC2::Instance"`.
  +  `StackIdentifier` 

    Este elemento especifica el Nombre de recurso de Amazon (ARN) de la pila de CloudFormation cuyos recursos desea incluir en el grupo.

Todos estos elementos JSON deben combinarse en una representación de cadena de una sola línea de la estructura JSON. Por ejemplo, considere una `Query` con la siguiente estructura JSON de ejemplo. Esta consulta debe coincidir únicamente con los buckets de Amazon S3 que forman parte de la CloudFormation pila especificada.

```
{
    "ResourceTypeFilters": [ "AWS::S3::Bucket" ],
    "StackIdentifier": "arn:aws:cloudformation:us-west-2:123456789012:stack/MyCloudFormationStackName/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE"
}
```

Ese JSON se puede representar como la siguiente cadena de una sola línea y se puede usar como el valor del elemento `Query`. Como el valor de una estructura JSON debe ser una cadena entre comillas dobles, debe evitar los caracteres de comillas dobles o barras diagonales incrustados precediendo a cada uno de ellos con una barra invertida, como se muestra a continuación:

```
"Query":"{\"ResourceTypeFilters\":[\"AWS::S3::Bucket\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack\/MyCloudFormationStackName\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\"
```

La cadena `ResourceQuery` completa se representa como se muestra aquí, como un parámetro de comando CLI:

```
--resource-query '{"Type":"CLOUDFORMATION_STACK_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::S3::Bucket\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack\/MyCloudFormationStackName\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\"}'
```

# Construir una consulta basada en etiquetas y crear un grupo
<a name="gettingstarted-query-tag-based"></a>

Los siguientes procedimientos le muestran cómo crear una consulta basada en etiquetas y usarla para crear un grupo de recursos.

------
#### [ Console ]

1. Inicie sesión en la [consola de Grupos de recursos de AWS](https://console.aws.amazon.com/resource-groups).

1. En el panel de navegación, elija **[Crear Resource Group](https://console.aws.amazon.com/resource-groups/groups/new)**.

1. En la página**Crear grupo basado en consultas**, en **Tipo de grupo**, elija el tipo de grupo **Basado en etiquetas**.

1. En **Criterios de agrupación**, elija los tipos de recursos que desea que formen parte del grupo de recursos. Puede incluir un máximo de 20 tipos de recursos en una consulta. Para este tutorial, elija **AWS::EC2::Instance**y. **AWS::S3::Bucket** 

1. Aun en **Criterios de agrupación**, para las **Etiquetas**, especifique una clave de etiqueta o un par de clave y valor para limitar los recursos coincidentes e incluir solo aquellos que estén etiquetados con los valores especificados. Elija **Añadir** o pulse **Intro** cuando haya terminado de definir la etiqueta. En este ejemplo, filtre los recursos que tienen una clave de etiqueta **Etapa**. El valor de la etiqueta es opcional, pero permite limitar aún más los resultados de la consulta. Puede añadir varios valores a una clave de etiqueta añadiendo un operador `OR` entre los valores de las etiquetas. Para añadir más etiquetas, elija **Añadir**. Las consultas asignan un operador `AND` a las etiquetas, por lo que devolverán los recursos que coincidan con los tipos de recursos especificados y con todas las etiquetas especificadas.

1. Aun en **Criterio de agrupamiento**, elija **Vista previa de los recursos del grupo** para devolver la lista de instancias EC2 y buckets de S3 de la cuenta que coincidan con las etiquetas o las claves de etiqueta especificadas.

1. Una vez que tenga los resultados que desea, cree un grupo basado en esta consulta.

   1. En la página **Detalles del grupo**, en **Nombre de grupo**, escriba un nombre para el grupo de recursos.

      El nombre de un grupo de recursos puede tener un máximo de 128 caracteres de longitud e incluir letras, números, guiones, puntos y guiones bajos. El nombre no puede comenzar por `AWS` ni `aws`. Estas cadenas están reservadas. El nombre de un grupo de recursos debe ser único en la región actual de la cuenta.

   1. (Opcional) En **Descripción del grupo**, escriba una descripción para el grupo.

   1. (Opcional) En **Etiquetas del grupo**, añada pares de clave y valor de etiqueta que se aplicarán solamente al grupo de recursos, no a los recursos miembros del grupo.

      Las etiquetas del grupo son útiles si tiene previsto que este grupo vaya a formar parte de un grupo más grande. Dado que es necesario especificar al menos una clave de etiqueta para crear un grupo, asegúrese de añadir como mínimo una clave de etiqueta en **Etiquetas del grupo** para los grupos que tiene previsto anidar en grupos más grandes.

1. Cuando termine, elija **Crear grupo**.

------
#### [ AWS CLI & AWS SDKs ]

Un grupo basado en etiquetas se basa en una consulta de tipo `TAG_FILTERS_1_0`.

1. En una AWS CLI sesión, escriba lo siguiente y, a continuación, presione **Entrar** y sustituya los valores del nombre del grupo, la descripción, los tipos de recursos, las claves y los valores de las etiquetas por los suyos propios. Las descripciones pueden tener un máximo de 512 caracteres de longitud e incluir letras, números, guiones, guiones bajos, puntuación y espacios. Puede incluir un máximo de 20 tipos de recursos en una consulta. El nombre de un grupo de recursos puede tener un máximo de 128 caracteres de longitud e incluir letras, números, guiones, puntos y guiones bajos. El nombre no puede comenzar por `AWS` ni `aws`. Estas cadenas están reservadas. El nombre de un grupo de recursos debe ser único en la cuenta.

   Al menos es obligatorio un valor para `ResourceTypeFilters`. Para especificar todos los tipos de recursos, utilice`AWS::AllSupported` como el valor de `ResourceTypeFilters`.

   ```
   $ aws resource-groups create-group \
       --name resource-group-name \
       --resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"resource_type1\",\"resource_type2\"],\"TagFilters\":[{\"Key\":\"Key1\",\"Values\":[\"Value1\",\"Value2\"]},{\"Key\":\"Key2\",\"Values\":[\"Value1\",\"Value2\"]}]}"}'
   ```

   El siguiente comando es un ejemplo.

   ```
   $ aws resource-groups create-group \
       --name my-resource-group \
       --resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}'
   ```

   El siguiente comando es un ejemplo que incluye todos los tipos de recursos admitidos.

   ```
   $ aws resource-groups create-group \
       --name my-resource-group \
       --resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}'
   ```

1. El comando devuelve lo siguiente.
   + Una descripción completa del grupo que se ha creado.
   + La consulta de recursos que ha utilizado para crear el grupo.
   + Las etiquetas que están asociadas al grupo.

------

# Cree un grupo CloudFormation basado en pilas
<a name="gettingstarted-query-stack-based"></a>

Los siguientes procedimientos le muestran cómo crear una consulta basada en consultas y usarla para crear un grupo de recursos.

------
#### [ Console ]

1. Inicie sesión en la [consola de Grupos de recursos de AWS](https://console.aws.amazon.com/resource-groups).

1. En el panel de navegación, elija **[Crear Resource Group](https://console.aws.amazon.com/resource-groups/groups/new)**.

1. En **Crear grupo basado en consultas, en Tipo de grupo**, elija el **tipo de grupo** basado en **CloudFormation pilas**.

1. Elija la pila que desea que sea la base de su grupo. Un grupo de recursos se puede basar solo en una pila. Para filtrar la lista de pilas, empiece a escribir el nombre. En la lista aparecen solo las pilas con estados compatibles.

1. Elija los tipos de recursos en la pila que desea incluir en el grupo. Para este tutorial, mantenga el valor predeterminado de **Todos los tipos de recursos admitidos**. Para obtener más información acerca de qué tipos de recursos son compatibles y pueden estar en el grupo, consulte [Tipos de recursos que puede usar con un Grupos de recursos de AWS editor de etiquetas](supported-resources.md).

1. Seleccione **Ver recursos de grupo** para obtener la lista de recursos de la CloudFormation pila que coinciden con los tipos de recursos seleccionados.

1. Una vez que tenga los resultados que desea, cree un grupo basado en esta consulta.

   1. En la página **Detalles del grupo**, en **Nombre de grupo**, escriba un nombre para el grupo de recursos.

      El nombre de un grupo de recursos puede tener un máximo de 128 caracteres de longitud e incluir letras, números, guiones, puntos y guiones bajos. El nombre no puede comenzar por `AWS` ni `aws`. Estas cadenas están reservadas. El nombre de un grupo de recursos debe ser único en la región actual de la cuenta.

   1. (Opcional) En **Descripción del grupo**, escriba una descripción para el grupo.

   1. (Opcional) En **Etiquetas del grupo**, añada pares de clave y valor de etiqueta que se aplicarán solamente al grupo de recursos, no a los recursos miembros del grupo.

      Las etiquetas del grupo son útiles si tiene previsto que este grupo vaya a formar parte de un grupo más grande. Dado que es necesario especificar al menos una clave de etiqueta para crear un grupo, asegúrese de añadir como mínimo una clave de etiqueta en **Etiquetas del grupo** para los grupos que tiene previsto anidar en grupos más grandes.

1. Cuando termine, elija **Crear grupo**.

------
#### [ AWS CLI & AWS SDKs ]

Un grupo CloudFormation basado en pilas se basa en un tipo de consulta. `CLOUDFORMATION_STACK_1_0`

1. Ejecute el siguiente comando, sustituyendo los valores de nombre de grupo, descripción, identificador de pila y tipos de recursos por los suyos. Las descripciones pueden tener un máximo de 512 caracteres de longitud e incluir letras, números, guiones, guiones bajos, puntuación y espacios.

   Si no identifica los tipos de recursos, Resource Groups incluye todos los tipos de recursos admitidos en la pila. Puede incluir un máximo de 20 tipos de recursos en una consulta. El nombre de un grupo de recursos puede tener un máximo de 128 caracteres de longitud e incluir letras, números, guiones, puntos y guiones bajos. El nombre no puede comenzar por `AWS` ni `aws`. Estas cadenas están reservadas. El nombre de un grupo de recursos debe ser único en la cuenta.

   *stack\$1identifier*Es el ARN de la pila, como se muestra en el comando de ejemplo.

   ```
   $ aws resource-groups create-group \
       --name group_name \
       --description "description" \
       --resource-query '{"Type":"CLOUDFORMATION_STACK_1_0","Query":"{\"StackIdentifier\":\"stack_identifier\",\"ResourceTypeFilters\":[\"resource_type1\",\"resource_type2\"]}"}'
   ```

   El siguiente comando es un ejemplo.

   ```
   $ aws resource-groups create-group \
       --name My-CFN-stack-group \
       --description "My first CloudFormation stack-based group" \
       --resource-query '{"Type":"CLOUDFORMATION_STACK_1_0","Query":"{\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack\/AWStestuseraccount\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\",\"ResourceTypeFilters\":[\"AWS::EC2::Instance\",\"AWS::S3::Bucket\"]}"}'
   ```

1. El comando devuelve lo siguiente.
   + Una descripción completa del grupo que se ha creado.
   + La consulta de recursos que ha utilizado para crear el grupo.

------