Creación de grupos basados en consultas enAWS Resource Groups - AWS Resource Groupsy etiquetas

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.

Creación de grupos basados en consultas enAWS Resource Groups

Tipos de consultas de grupos de recursos

EnAWS Resource Groups, unqueryes 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::resourcey 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 laAWS::EC2::InstanceyAWS::S3::Buckettipos de recursos de la lista desplegable y, a continuación, especifique la clave de etiquetaStage, con un valor de etiqueta deTest.

La sintaxis delResourceQueryde 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 valorTAG_FILTERS_1_0, de la siguiente manera:

    "Type": "TAG_FILTERS_1_0"
  • Query

    Este elemento define la consulta real utilizada para coincidir con los recursos. Contiene una representación de cadenas de una estructura JSON con los siguientes elementos:

    • ResourceTypeFilters

      Este elemento limita los resultados solo a aquellos tipos de recursos que coincidan 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 admite el servicio &ARG;.

      • "AWS::service-id::resource-type— una lista separada por comas de cadenas de especificación de tipo de recurso con este formato:, como"AWS::EC2::Instance".

    • TagFilters

      Este elemento especifica pares de cadenas clave/valor que se comparan con las etiquetas asociadas a los recursos. Las que tienen una clave de etiqueta y un valor que coinciden con el filtro se incluyen en el grupo. Cada filtro consta de los siguientes elementos:

      • "Key"— una cadena con un nombre clave. Solo los recursos que tienen etiquetas con un nombre de clave coincidente coinciden y se pueden incluir en el grupo.

      • "Values"— cadena con una lista de valores separada por comas para la clave especificada. Solo los recursos con una clave de etiqueta coincidente y un valor que coincida con uno de esta lista 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 unaQuerycon el siguiente ejemplo de estructura JSON. Esta consulta tiene por objeto hacer coincidir solo las instancias de Amazon EC2 que tienen una etiqueta «Stage» con un 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 utilizarse como valor delQueryelemento. Dado que el valor de una estructura JSON debe ser una cadena de comillas dobles, debe escapar de cualquier carácter de comillas dobles incrustados o caracteres de barra inclinada precediendo a cada uno con una barra invertida como se muestra aquí:

"Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"

El completeResourceQuerystring se representa tal y como se muestra aquí, como parámetro de comando CLI:

--resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}'
Consultas basadas en una pila de AWS CloudFormation

En una consulta basada en una pila de AWS CloudFormation, elija una pila de AWS CloudFormation de su cuenta en la región actual y, a continuación, elija los tipos de recursos de la pila que desea que estén en el grupo. Puede basar su consulta únicamente en una pila de AWS CloudFormation. Los Resource Groups admiten consultas basadas enAWS CloudFormationPilas que tienen uno de los siguientes estados.

importante

Solo los recursos creados directamente como parte de la pila de la consulta se incluyen en el grupo de recursos. Recursos creados posteriormente por los miembros delAWS CloudFormationstack no se convierten en miembros del grupo. Por ejemplo, si se crea un grupo de auto-scaling medianteAWS CloudFormationcomo parte de la pila, luego ese grupo de auto-scalingesun miembro del grupo. Sin embargo, una instancia de Amazon EC2 creada por ese grupo de auto-scaling como parte de su operaciónno esmiembro de laAWS CloudFormationgrupo de recursos basado en una pila de.

Si crea un grupo basado en unaAWS CloudFormationy el estado de la pila cambia a uno que ya no se admite como una base para una consulta de grupo, comoDELETE_COMPLETE, el grupo de recursos sigue existiendo, pero no tiene recursos para miembros.

Una vez haya creado un grupo de recursos, puede realizar tareas con los recursos del grupo.

La sintaxis delResourceQueryparámetro de un CloudFormation El grupo de recursos basado en una pila de

  • Type

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

    Para crear unAWS CloudFormationgrupo de recursos basado en pila, especifique el valorCLOUDFORMATION_STACK_1_0, de la siguiente manera:

    "Type": "CLOUDFORMATION_STACK_1_0"
  • Query

    Este elemento define la consulta real utilizada para coincidir con los recursos. Contiene una representación de cadenas de una estructura JSON con los siguientes elementos:

    • ResourceTypeFilters

      Este elemento limita los resultados solo a aquellos tipos de recursos que coincidan 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 tipo de recurso con este formato:, como"AWS::EC2::Instance".

    • StackIdentifier

      Este elemento especifica el nombre de recurso de Amazon (ARN) de laAWS CloudFormationpila 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 unaQuerycon el siguiente ejemplo de estructura JSON. Esta consulta tiene por objeto coincidir solo con los buckets de Amazon S3 que forman parte del especificadoAWS CloudFormationpila.

{ "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 utilizarse como valor delQueryelemento. Dado que el valor de una estructura JSON debe ser una cadena de comillas dobles, debe escapar de cualquier carácter de comillas dobles incrustados o caracteres de barra inclinada precediendo a cada uno con una barra invertida como se muestra aquí:

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

El completeResourceQuerystring se representa tal y como se muestra aquí, como 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\"}'

Creación de una consulta basada en etiquetas y un grupo

Los procedimientos que se describen a continuación muestran cómo crear una consulta basada en etiquetas y utilizarla para crear un grupo de recursos.

Console
  1. Inicie sesión en la consola de AWS Resource Groups.

  2. En el panel de navegación, elijaCreación de un grupo de recursos.

  3. En la páginaCrear grupo basado en consultaspágina, enTipo de grupo, elige elBasado en etiquetastipo de grupo.

  4. UNDERCriterios 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.

  5. Aún enCriterios de agrupación, paraEtiquetas, especifique una clave de etiqueta o un par de clave y valor de etiqueta para limitar los recursos coincidentes y incluir únicamente los etiquetados con los valores especificados. Elija Add (Añadir) o pulse Enter (Intro) cuando haya terminado de definir la etiqueta. En este ejemplo, filtre los recursos que tienen una clave de etiqueta Stage (Etapa). El valor de la etiqueta es opcional, pero permite limitar aún más los resultados de la consulta. Puede añadir múltiples valores para una clave de etiqueta añadiendo unaORoperador entre valores de etiqueta. Para añadir más etiquetas, elija Add (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.

  6. Aún enCriterios de agrupación, eligeVista previa de recursos del grupopara devolver la lista de instancias EC2 y buckets de S3 de la cuenta que coincidan con las etiquetas o las claves de etiqueta especificadas.

  7. Después de obtener los resultados que desea, cree un grupo basado en esta consulta.

    1. UNDERDetalles del grupo, paraGroup name, 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.

    2. (Opcional) En Group description (Descripción del grupo), escriba una descripción para el grupo.

    3. (Opcional) En Group tags (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 Group tags (Etiquetas del grupo) para los grupos que tiene previsto anidar en grupos más grandes.

  8. Cuando haya terminado, elijaCreación de un grupo.

AWS CLI & AWS SDKs

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

  1. En una sesión de la AWS CLI, escriba lo siguiente, reemplazando los valores de nombre de grupo, descripción, tipos de recursos, claves de etiqueta y valores de etiqueta por los suyos propios y, a continuación, pulse Enter (Intro). 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, utiliceAWS::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\"]}]}"}'
  2. 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.

Creación de unAWS CloudFormationgrupo basado en una pila de

Los procedimientos que se describen a continuación muestran cómo crear una consulta basada en una pila de

Console
  1. Inicie sesión en la consola de AWS Resource Groups.

  2. En el panel de navegación, elijaCreación de un grupo de recursos.

  3. SobreCrear grupo basado en consultas, enTipo de grupo, elige elCloudFormation una pila detipo de grupo.

  4. 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 de la pila. En la lista aparecen solo las pilas con estados compatibles.

  5. Elija los tipos de recursos en la pila que desea incluir en el grupo. Para este tutorial, mantenga el valor predeterminado de All supported resource types (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 Recursos que puedes usar conAWS Resource GroupsEditor de etiquetas de.

  6. Elija View group resources (Ver recursos del grupo) para devolver la lista de recursos de la pila de AWS CloudFormation que coincidan con los tipos de recursos que ha seleccionado.

  7. Después de obtener los resultados que desea, cree un grupo basado en esta consulta.

    1. UNDERDetalles del grupo, paraGroup name, 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.

    2. (Opcional) En Group description (Descripción del grupo), escriba una descripción para el grupo.

    3. (Opcional) En Group tags (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 Group tags (Etiquetas del grupo) para los grupos que tiene previsto anidar en grupos más grandes.

  8. Cuando haya terminado, elijaCreación de un grupo.

AWS CLI & AWS SDKs

Un grupo basado en pilas de AWS CloudFormation se basa en una consulta de tipo CLOUDFORMATION_STACK_1_0.

  1. Ejecute el siguiente comando, reemplazando los valores del nombre de grupo, descripción, identificador de la pila y tipos de recursos por los suyos propios, reemplazando los valores del nombre de grupo, 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 especifica los tipos de recursos, los Resource Groups incluyen 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.

    El stack_identifier 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\"]}"}'
  2. 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.