Exemplos de Resource Groups usando a AWS CLI - AWS Command Line Interface

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 chave Name e o valor WebServers. 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-query file://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 chamado sampleCFNstackgroup. 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-query file://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, use get-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ílias C5 ou M5.

aws resource-groups put-group-configuration \ --group MyTestGroup \ --configuration file://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.

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 \ --arn arn: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 \ --keys QueryType

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.