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.
Temas
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 claveName
y el valorWebServers
. El nombre del grupo estbq-WebServer
. La consulta se encuentra en un archivo JSON independiente que se pasa al comando.aws resource-groups create-group \ --name
tbq-WebServer
\ --resource-queryfile://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 denominadosampleCFNstackgroup
. 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-queryfile://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, utiliceget-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 familiasC5
oM5
.aws resource-groups put-group-configuration \ --group
MyTestGroup
\ --configurationfile://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
\ --arnarn: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
\ --keysQueryType
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.
-