

# Exemplos de Resource Groups usando a AWS CLI
<a name="cli_resource-groups_code_examples"></a>

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 perfis 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.

**Topics**
+ [Ações](#actions)

## Ações
<a name="actions"></a>

### `create-group`
<a name="resource-groups_CreateGroup_cli_topic"></a>

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\"]}]}"
}
```
Resultado:  

```
{
    "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\"}"
}
```
Resultado:  

```
{
    "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](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html) no *Guia do usuário do AWS Resource Groups*.  
+  Consulte detalhes da API em [CreateGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/create-group.html) na *Referência de comandos da AWS CLI*. 

### `delete-group`
<a name="resource-groups_DeleteGroup_cli_topic"></a>

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
```
Resultado:  

```
{
    "Group": {
        "GroupArn": "arn:aws:resource-groups:us-west-2:1234567890:group/tbq-WebServer",
        "Name": "tbq-WebServer"
    }
}
```
Para obter mais informações, consulte [Excluir Grupos](https://docs.aws.amazon.com/ARG/latest/userguide/deleting-resource-groups.html) no *Guia do usuário do AWS Resource Groups*.  
+  Consulte detalhes da API em [DeleteGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/delete-group.html) na *Referência de comandos da AWS CLI*. 

### `get-group-query`
<a name="resource-groups_GetGroupQuery_cli_topic"></a>

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
```
Resultado:  

```
{
    "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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/get-group-query.html) na *Referência de comandos da AWS CLI*. 

### `get-group`
<a name="resource-groups_GetGroup_cli_topic"></a>

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
```
Resultado:  

```
{
    "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."
    }
}
```
+  Consulte detalhes da API em [GetGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/get-group.html) na *Referência de comandos da AWS CLI*. 

### `get-tags`
<a name="resource-groups_GetTags_cli_topic"></a>

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
```
Resultado:  

```
{
    "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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/get-tags.html) na *Referência de comandos da AWS CLI*. 

### `list-group-resources`
<a name="resource-groups_ListGroupResources_cli_topic"></a>

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
```
Resultado:  

```
{
    "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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/list-group-resources.html) na *Referência de comandos da AWS CLI*. 

### `list-groups`
<a name="resource-groups_ListGroups_cli_topic"></a>

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
```
Resultado:  

```
{
    "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"
        }
    ]
}
```
+  Consulte detalhes da API em [ListGroups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/list-groups.html) na *Referência de comandos da AWS CLI*. 

### `list-resource-groups`
<a name="resource-groups_ListResourceGroups_cli_topic"></a>

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
```
Resultado:  

```
{
    "ResourceIdentifiers": [
        {
            "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab",
            "ResourceType": "AWS::EC2::Instance"
        }
    ]
}
```
+  Para ver detalhes da API, consulte [ListResourceGroups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/list-resource-groups.html) na *Referência de comandos da AWS CLI*. 

### `put-group-configuration`
<a name="resource-groups_PutGroupConfiguration_cli_topic"></a>

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](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html) no *Guia de referência da API dos Resource Groups*.  
+  Para ver detalhes da API, consulte [PutGroupConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/put-group-configuration.html) na *Referência de comandos da AWS CLI*. 

### `search-resources`
<a name="resource-groups_SearchResources_cli_topic"></a>

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\"]}]}"
}
```
Resultado:  

```
{
    "ResourceIdentifiers": [
        {
            "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-01a23bc45d67890ef",
            "ResourceType": "AWS::EC2::Instance"
        }
    ]
}
```
+  Para obter detalhes sobre a API, consulte [SearchResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/search-resources.html) na *Referência de comandos da AWS CLI*. 

### `tag`
<a name="resource-groups_Tag_cli_topic"></a>

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
```
Resultado:  

```
{
    "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](https://docs.aws.amazon.com/ARG/latest/userguide/tagging-resources.html) no *Guia do usuário do AWS Resource Groups*.  
+  Para ver detalhes da API, consulte [Tag](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/tag.html) na *Referência de comandos da AWS CLI*. 

### `untag`
<a name="resource-groups_Untag_cli_topic"></a>

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
```
Resultado:  

```
{
    "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer",
    "Keys": [
        "QueryType"
    ]
}
```
Para obter mais informações, consulte [Como gerenciar tags](https://docs.aws.amazon.com/ARG/latest/userguide/tagging-resources.html) no *Guia do usuário do AWS Resource Groups*.  
+  Para ver detalhes da API, consulte [Untag](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/untag.html) na *Referência de comandos da AWS CLI*. 

### `update-group-query`
<a name="resource-groups_UpdateGroupQuery_cli_topic"></a>

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\"]}]}"}'
```
Resultado:  

```
{
    "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](https://docs.aws.amazon.com/ARG/latest/userguide/updating-resource-groups.html) 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\"}"}'
```
Resultado:  

```
{
    "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](https://docs.aws.amazon.com/ARG/latest/userguide/updating-resource-groups.html) no *Guia do usuário do AWS Resource Groups*.  
+  Para ver detalhes da API, consulte [UpdateGroupQuery](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/update-group-query.html) na *Referência de comandos da AWS CLI*. 

### `update-group`
<a name="resource-groups_UpdateGroup_cli_topic"></a>

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."
```
Resultado:  

```
{
    "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](https://docs.aws.amazon.com/ARG/latest/userguide/updating-resource-groups.html) no *Guia do usuário do AWS Resource Groups*.  
+  Consulte detalhes da API em [UpdateGroup](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/update-group.html) na *Referência de comandos da AWS CLI*. 