Exemplos de Resource Groups usando a AWS CLI
Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Command Line Interface com Resource Groups.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar funções de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.
Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.
Tópicos
Ações
O código de exemplo a seguir mostra como usar create-group
.
- AWS CLI
-
Exemplo 1: criar um grupo de recursos baseado em tags
O exemplo
create-group
a seguir cria um grupo de recursos baseado em tag de instâncias do Amazon EC2 na região atual. Ele é baseado em uma consulta de recursos marcados com a chaveName
e o valorWebServers
. O nome do grupo étbq-WebServer
. A consulta está em um arquivo JSON separado que é passado para o comando.aws resource-groups create-group \ --name
tbq-WebServer
\ --resource-queryfile://query.json
Conteúdo de
query.json
:{ "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" }
Saída:
{ "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\"]}]}" } }
Exemplo 2: criar um grupo de recursos baseado em pilha do CloudFormation
O exemplo
create-group
a seguir cria um grupo de recursos baseado em pilhas do AWS CloudFormation chamadosampleCFNstackgroup
. A consulta inclui todos os recursos na pilha especificada do CloudFormation que são suportados pelo AWS Resource Groups.aws resource-groups create-group \ --name
cbq-CFNstackgroup
\ --resource-queryfile://query.json
Conteúdo 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\"}" }
Saída:
{ "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 obter mais informações, consulte Criar grupos no Guia do usuário do AWS Resource Groups.
-
Para obter detalhes da API, consulte CreateGroup
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar delete-group
.
- AWS CLI
-
Atualizar a descrição de um grupo de recursos
O exemplo
delete-group
a seguir atualiza o grupo de recursos especificado.aws resource-groups delete-group \ --group-name
tbq-WebServer
Saída:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:1234567890:group/tbq-WebServer", "Name": "tbq-WebServer" } }
Para obter mais informações, consulte Excluir Grupos no Guia do usuário do AWS Resource Groups.
-
Para obter detalhes da API, consulte DeleteGroup
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar get-group-query
.
- AWS CLI
-
Para anexar a consulta a um grupo de recursos
O exemplo
get-group-query
a seguir exibe uma consulta anexada ao grupo de recursos especificado.aws resource-groups get-group-query \ --group-name
tbq-WebServer
Saída:
{ "GroupQuery": { "GroupName": "tbq-WebServer", "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } } }
-
Para ver detalhes da API, consulte GetGroupQuery
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar get-group
.
- AWS CLI
-
Para obter informações sobre um grupo de recursos
O exemplo
get-group
a seguir exibe os detalhes do grupo de destino especificado. Para anexar a consulta ao grupo, useget-group-query
.aws resource-groups get-group \ --group-name
tbq-WebServer
Saída:
{ "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 obter detalhes da API, consulte GetGroup
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar get-tags
.
- AWS CLI
-
Para recuperar as tags anexadas a um grupo de recursos
O exemplo
get-tags
a seguir exibe os pares de chave e valor de tag anexados ao grupo de recursos especificado (o grupo em si, não seus membros).aws resource-groups get-tags \ --arn
arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer
Saída:
{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }
-
Para ver detalhes da API, consulte GetTags
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-group-resources
.
- AWS CLI
-
Para listar todos os recursos em um grupo de recursos
Exemplo 1: o exemplo
list-resource-groups
a seguir lista todos os recursos que fazem parte do grupo de recursos especificado.aws resource-groups list-group-resources \ --group-name
tbq-WebServer
Saída:
{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab", "ResourceType": "AWS::EC2::Instance" } ] }
Exemplo 2: o exemplo a seguir lista todos os recursos do grupo que também têm um 'resource-type' igual a 'AWS::EC2::Instance'. :
aws resource-groups list-group-resources --group-name tbq-WebServer --filters Name=resource-type,Values=AWS::EC2::Instance
-
Para ver detalhes da API, consulte ListGroupResources
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-groups
.
- AWS CLI
-
Para listar os grupos de recursos disponíveis
O exemplo
list-groups
a seguir exibe uma lista de todos os grupos de recursos.aws resource-groups list-groups
Saída:
{ "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 obter detalhes da API, consulte ListGroups
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar list-resource-groups
.
- AWS CLI
-
Para listar todos os recursos em um grupo de recursos
O exemplo
list-resource-groups
a seguir lista todos os recursos que fazem parte do grupo de recursos especificado.aws resource-groups list-group-resources \ --group-name
tbq-WebServer
Saída:
{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab", "ResourceType": "AWS::EC2::Instance" } ] }
-
Para ver detalhes da API, consulte ListResourceGroups
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar put-group-configuration
.
- AWS CLI
-
Para conectar uma configuração de serviço a um grupo de recursos
Exemplo 1: o exemplo
put-group-configuration
a seguir especifica que o grupo de recursos deve conter somente reservas de capacidade do Amazon EC2 para instâncias nas famíliasC5
ouM5
.aws resource-groups put-group-configuration \ --group
MyTestGroup
\ --configurationfile://config.json
Conteúdo 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" ] } ] } ]
Se for bem-sucedido, esse comando não gerará nenhum resultado.
Para obter mais informações, consulte Configurações de serviço para grupos de recursos no Guia de referência da API dos Resource Groups.
-
Para ver detalhes da API, consulte PutGroupConfiguration
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar search-resources
.
- AWS CLI
-
Para encontrar recursos que correspondam a uma consulta
O exemplo
search-resources
a seguir recupera uma lista de todos os recursos da AWS que correspondem à consulta especificada.aws resource-groups search-resources \ --resource-query
file://query.json
Conteúdo de
query.json
:{ "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Patch Group\", \"Values\":[\"Dev\"]}]}" }
Saída:
{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-01a23bc45d67890ef", "ResourceType": "AWS::EC2::Instance" } ] }
-
Para obter detalhes sobre a API, consulte SearchResources
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar tag
.
- AWS CLI
-
Para anexar uma tag a um grupo de recursos
O exemplo
tag
a seguir anexa os pares de chave e valor de tag especificados ao grupo de recursos especificado (o grupo em si, não seus membros).aws resource-groups tag \ --tags
QueryType=tags,QueryResources=ec2-instances
\ --arnarn:aws:resource-groups:us-west-2:128716708097:group/tbq-WebServer
Saída:
{ "Arn": "arn:aws:resource-groups:us-west-2:128716708097:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }
Para obter mais informações, consulte Como gerenciar tags no Guia do usuário do AWS Resource Groups.
-
Para ver detalhes da API, consulte Tag
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar untag
.
- AWS CLI
-
Para remover tags de um grupo de recursos
O exemplo
untags
a seguir remove qualquer tag com a chave especificada do grupo de recursos em si, não seus membros.aws resource-groups untag \ --arn
arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer
\ --keysQueryType
Saída:
{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Keys": [ "QueryType" ] }
Para obter mais informações, consulte Como gerenciar tags no Guia do usuário do AWS Resource Groups.
-
Para ver detalhes da API, consulte Untag
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-group-query
.
- AWS CLI
-
Exemplo 1: atualizar a consulta para um grupo de recursos baseado em tags
O exemplo
update-group-query
a seguir atualiza a consulta anexada ao grupo de recursos baseado em tags 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\"]}]}"}
'Saída:
{ "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 obter mais informações, consulte Atualizar grupos no Guia do usuário do AWS Resource Groups.
Exemplo 2: atualizar a consulta de um grupo de recursos baseado em pilha do CloudFormation
O exemplo
update-group-query
a seguir atualiza a consulta anexada ao grupo de recursos baseado em pilhas do AWS CloudFormation.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\"}"}
'Saída:
{ "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 obter mais informações, consulte Atualizar grupos no Guia do usuário do AWS Resource Groups.
-
Para ver detalhes da API, consulte UpdateGroupQuery
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar update-group
.
- AWS CLI
-
Atualizar a descrição de um grupo de recursos
O exemplo
update-group
a seguir atualiza a descrição do grupo de recursos especificado.aws resource-groups update-group \ --group-name
tbq-WebServer
\ --description"Resource group for all web server resources."
Saída:
{ "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 obter mais informações, consulte Atualizar grupos no Guia do usuário do AWS Resource Groups.
-
Para obter detalhes da API, consulte UpdateGroup
na Referência de comandos da AWS CLI.
-