Crear grupos basados en consultas en Grupos de recursos de AWS - Grupos de recursos de AWS

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

Tipos de consultas de grupos de recursos

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.

nota

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

importante

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 existiendoDELETE_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\"}'