Ejemplos de Resource Groups que utilizan la AWS CLI - AWS Command Line Interface

Ejemplos de Resource Groups que utilizan la AWS CLI

En los siguientes ejemplos de código se muestra cómo realizar acciones e implementar escenarios comunes usando la AWS Command Line Interface con Resource Groups.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las funciones de servicio individuales, es posible ver las acciones en contexto en los escenarios relacionados.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

Acciones

En el siguiente ejemplo de código, se muestra cómo utilizar create-group.

AWS CLI

Ejemplo 1: crear un grupo de recursos basado en etiquetas

En el siguiente ejemplo de create-group, se crea un grupo de recursos basado en etiquetas de instancias de Amazon EC2 de la región actual. Se basa en una consulta de recursos que están etiquetados con la clave Name y el valor WebServers. El nombre del grupo es tbq-WebServer. La consulta se encuentra en un archivo JSON independiente que se pasa al comando.

aws resource-groups create-group \ --name tbq-WebServer \ --resource-query file://query.json

Contenido de query.json:

{ "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" }

Salida:

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } }

Ejemplo 2: crear un grupo de recursos basado en la pila de CloudFormation

En el siguiente ejemplo de create-group, se crea un grupo de recursos basado en una pila de AWS CloudFormation denominado sampleCFNstackgroup. La consulta incluye todos los recursos de la pila de CloudFormation especificada que son compatibles con AWS Resource Groups.

aws resource-groups create-group \ --name cbq-CFNstackgroup \ --resource-query file://query.json

Contenido de query.json:

{ "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}" }

Salida:

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNstackgroup", "Name": "cbq-CFNstackgroup" }, "ResourceQuery": { "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-east-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}"}' } }

Para obtener más información, consulte Create Groups en la Guía del usuario de AWS Resource Groups.

  • Para obtener información sobre la API, consulte CreateGroup en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar delete-group.

AWS CLI

Para actualizar la descripción de un grupo de recursos

En el siguiente ejemplo de delete-group, se actualiza el grupo de recurso especificado.

aws resource-groups delete-group \ --group-name tbq-WebServer

Salida:

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:1234567890:group/tbq-WebServer", "Name": "tbq-WebServer" } }

Para obtener más información, consulte Delete Groups en la Guía del usuario de AWS Resource Groups.

  • Para obtener información sobre la API, consulte DeleteGroup en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-group-query.

AWS CLI

Para asociar la consulta a un grupo de recursos

En el siguiente ejemplo de get-group-query, se muestra la consulta asociada al grupo de recursos especificado.

aws resource-groups get-group-query \ --group-name tbq-WebServer

Salida:

{ "GroupQuery": { "GroupName": "tbq-WebServer", "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } } }
  • Para obtener información sobre la API, consulte GetGroupQuery en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-group.

AWS CLI

Para obtener información sobre un grupo de recursos

En el siguiente ejemplo de get-group, se muestran los detalles sobre el grupo de recursos especificado. Para adjuntar la consulta al grupo, utilice get-group-query.

aws resource-groups get-group \ --group-name tbq-WebServer

Salida:

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer", "Description": "A tag-based query resource group of WebServers." } }
  • Para obtener información sobre la API, consulte GetGroup en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar get-tags.

AWS CLI

Para recuperar las etiquetas adjuntas a un grupo de recursos

En el siguiente ejemplo de get-tags, se muestran los pares de claves y valores de etiquetas asociados al grupo de recursos especificado (el grupo en sí, no sus miembros).

aws resource-groups get-tags \ --arn arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer

Salida:

{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }
  • Para obtener detalles sobre la API, consulte GetTags en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-group-resources.

AWS CLI

Para enumerar todos los recursos de un grupo de recursos

Ejemplo 1: en el siguiente ejemplo de list-resource-groups, se enumeran todos los recursos que forman parte del grupo de recursos especificado.

aws resource-groups list-group-resources \ --group-name tbq-WebServer

Salida:

{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab", "ResourceType": "AWS::EC2::Instance" } ] }

Ejemplo 2: en el siguiente ejemplo se enumeran todos los recursos del grupo que también tienen un resource-type AWS::EC2::Instance.

aws resource-groups list-group-resources --group-name tbq-Webserver --filters name=Resource-Type, Values=: :EC2: :Instance AWS

  • Para obtener información sobre la API, consulte ListGroupResources en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-groups.

AWS CLI

Para enumerar los grupos de recursos disponibles

En el siguiente ejemplo de list-groups, se muestra una lista de todos los grupos de recursos.

aws resource-groups list-groups

Salida:

{ "GroupIdentifiers": [ { "GroupName": "tbq-WebServer", "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer3" }, { "GroupName": "cbq-CFNStackQuery", "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNStackQuery" } ], "Groups": [ { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNStackQuery", "Name": "cbq-CFNStackQuery" } ] }
  • Para obtener información sobre la API, consulte ListGroups en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar list-resource-groups.

AWS CLI

Para enumerar todos los recursos de un grupo de recursos

En el siguiente ejemplo de list-resource-groups, se enumeran todos los recursos que forman parte del grupo de recursos especificado.

aws resource-groups list-group-resources \ --group-name tbq-WebServer

Salida:

{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab", "ResourceType": "AWS::EC2::Instance" } ] }
  • Para obtener información sobre la API, consulte ListResourceGroups en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar put-group-configuration.

AWS CLI

Para asociar una configuración de servicio a un grupo de recursos

Ejemplo 1: el siguiente ejemplo de put-group-configuration especifica que el grupo de recursos debe contener únicamente reservas de capacidad de Amazon EC2 para las instancias de las familias C5 o M5.

aws resource-groups put-group-configuration \ --group MyTestGroup \ --configuration file://config.json

Contenido de config.json:

[ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "allowed-host-families", "Values": [ "c5", "m5" ] }, { "Name": "any-host-based-license-configuration", "Values": [ "true" ] } ] }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::Host" ] }, { "Name": "deletion-protection", "Values": [ "UNLESS_EMPTY" ] } ] } ]

Este comando no genera ninguna salida si se realiza correctamente.

Para obtener más información, consulte Service configurations for resource groups en la Guía de referencia de la API de Resource Groups.

  • Para obtener información sobre la API, consulte PutGroupConfiguration en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar search-resources.

AWS CLI

Para encontrar recursos que coincidan con una consulta

El siguiente ejemplo de search-resources recupera una lista de todos los recursos AWS que coinciden con la consulta especificada.

aws resource-groups search-resources \ --resource-query file://query.json

Contenido de query.json:

{ "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Patch Group\", \"Values\":[\"Dev\"]}]}" }

Salida:

{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-01a23bc45d67890ef", "ResourceType": "AWS::EC2::Instance" } ] }
  • Para obtener información sobre la API, consulte SearchResources en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar tag.

AWS CLI

Para asociar una etiqueta a un grupo de recursos

En el siguiente ejemplo de tag, se asocian los pares de claves y valores de etiquetas especificados al grupo de recursos especificado (al grupo en sí, no a sus miembros).

aws resource-groups tag \ --tags QueryType=tags,QueryResources=ec2-instances \ --arn arn:aws:resource-groups:us-west-2:128716708097:group/tbq-WebServer

Salida:

{ "Arn": "arn:aws:resource-groups:us-west-2:128716708097:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }

Para obtener más información, consulte el Manage tags en la Guía del usuario de AWS Resource Groups.

  • Para obtener información sobre la API, consulte Tag en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar untag.

AWS CLI

Cómo eliminar etiquetas de un grupo de recursos

El siguiente ejemplo de untags elimina cualquier etiqueta con la clave especificada del propio grupo de recursos, no de sus miembros.

aws resource-groups untag \ --arn arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer \ --keys QueryType

Salida:

{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Keys": [ "QueryType" ] }

Para obtener más información, consulte el Manage tags en la Guía del usuario de AWS Resource Groups.

  • Para obtener información sobre la API, consulte Untag en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar update-group-query.

AWS CLI

Ejemplo 1: actualizar la consulta de un grupo de recursos basado en etiquetas

En el siguiente ejemplo de update-group-query, se actualiza la consulta asociada al grupo de recursos basado en etiquetas especificado.

aws resource-groups update-group-query \ --group-name tbq-WebServer \ --resource-query '{"Type":"TAG_FILTERS_1_0", "Query":"{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}"}'

Salida:

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-east-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } }

Para obtener más información, consulte Update Groups en la Guía del usuario de AWS Resource Groups.

Ejemplo 2: actualizar la consulta para un grupo de recursos basado en la pila de CloudFormation

En el siguiente ejemplo de update-group-query, se actualiza la consulta asociada al grupo de recursos basado en la pila de AWS CloudFormation especificada.

aws resource-groups update-group-query \ --group-name cbq-CFNstackgroup \ --resource-query '{"Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}"}'

Salida:

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNstackgroup", "Name": "cbq-CFNstackgroup" }, "ResourceQuery": { "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}" } }

Para obtener más información, consulte Update Groups en la Guía del usuario de AWS Resource Groups.

  • Para obtener información sobre la API, consulte UpdateGroupQuery en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar update-group.

AWS CLI

Para actualizar la descripción de un grupo de recursos

En el siguiente ejemplo de update-group, se actualiza la descripción del grupo de recursos especificado.

aws resource-groups update-group \ --group-name tbq-WebServer \ --description "Resource group for all web server resources."

Salida:

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" "Description": "Resource group for all web server resources." } }

Para obtener más información, consulte Update Groups en la Guía del usuario de AWS Resource Groups.

  • Para obtener información sobre la API, consulte UpdateGroup en la Referencia de comandos de la AWS CLI.