

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Estrutura e sintaxe dos eventos do ciclo de vida dos Grupos de recursos
<a name="monitor-groups-syntax"></a>

**Topics**
+ [Estrutura do campo `detail`](monitor-groups-syntax-detail.md)
+ [Exemplo de padrões de eventos EventBridge personalizados para diferentes casos de uso](monitor-groups-example-eventbridge-filters.md)

Os eventos do ciclo de vida de AWS Resource Groups assumem a forma de cadeias de objetos [JSON](https://json.org) no seguinte formato geral.

```
{
    "version": "0",
    "id": "08f00e24-2e30-ec44-b824-8acddf1ac868",
    "detail-type": "ResourceGroups Group ... Change",
    "source": "aws.resource-groups",
    "account": "123456789012",
    "time": "2020-09-29T09:59:01Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:resource-groups:us-east-1:123456789012:group/MyGroupName"
    ],
    "detail": {
        ...
    }
}
```

Para obter detalhes sobre os campos comuns a todos os EventBridge eventos da Amazon, consulte [ EventBridge Eventos da Amazon](https://docs.aws.amazon.com//eventbridge/latest/userguide/aws-events.html) no *Guia EventBridge do usuário da Amazon*. Os detalhes específicos de Grupos de recursos são explicados na tabela a seguir.


| Nome do campo | Tipo | Description | 
| --- | --- | --- | 
| detail-type | Cadeia de caracteres |  Para Grupos de recursos, o campo `detail-type` é sempre um dos seguintes valores: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/ARG/latest/userguide/monitor-groups-syntax.html)  | 
| source | String | Para Grupos de recursos, esse valor é always "aws.resource-groups". | 
| resources | Uma matriz de nomes de recursos da Amazon (ARNs) |  Este campo sempre inclui o [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html) do grupo com a alteração que acionou esse evento. Esse campo também pode incluir quaisquer recursos adicionados ou removidos do grupo, se aplicável. ARNs   | 
|  `detail`  | Cadeia de caracteres de objetos JSON | Esta é a carga útil do evento. O conteúdo do campo detail varia com base no valor do detail-type. [Consulte a próxima seção para obter mais informações.](monitor-groups-syntax-detail.md) | 

# Estrutura do campo `detail`
<a name="monitor-groups-syntax-detail"></a>

O campo `detail` inclui todos os detalhes específicos do serviço Grupos de recursos sobre uma alteração específica. O campo `detail` pode assumir uma das duas formas, uma mudança de estado de grupo ou alteração de associação, com base no valor do campo `detail-type` descrito na seção anterior.

**Importante**  
Os Grupos de recursos nestes eventos são identificados por uma combinação do ARN do grupo e um campo `"unique-id"` que contém um [UUID](https://wikipedia.org/wiki/Universally_unique_identifier). Ao incluir um UUID como parte da identidade de um grupo de recursos, você pode distinguir entre um grupo excluído e um grupo diferente criado posteriormente com o mesmo nome. Recomendamos que você trate uma concatenação do ARN e do ID exclusivo como a chave para o grupo em seus programas que interagem com esses eventos. 

## Alteração de estado de grupo
<a name="monitor-groups-syntax-detail-state-change"></a>

`"detail-type": "ResourceGroups Group State Change"`

Este valor `detail-type` indica que o estado do próprio grupo, incluindo seus metadados, foi alterado. Esta alteração ocorre quando um grupo é criado, atualizado ou excluído, conforme indicado pelo campo `"change"` no `detail`. 

As informações incluídas na seção `details` quando este `detail-type` é especificado incluem os campos descritos na tabela a seguir.


| Nome do campo | Tipo | Description | 
| --- | --- | --- | 
| event-sequence | Duplo | Um número monotonicamente crescente que especifica a sequência de eventos para um grupo específico. O número é redefinido quando você exclui o grupo e cria outro com o mesmo nome.  | 
| group | Objeto JSON [`Group`](#monitor-groups-syntax-detail-group-object) | O objeto de grupo associado ao evento por seu ARN, nome e ID exclusivo. | 
| state-change | String | O tipo de mudança de estado que ocorreu. Pode ser qualquer um dos valores a seguir:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/ARG/latest/userguide/monitor-groups-syntax-detail.html) | 
| old-state  | Objeto JSON GroupState | O estado do grupo antes da mudança. O objeto inclui somente os valores das propriedades que foram alteradas.  | 
|  `new-state`  | Objeto JSON GroupState | O estado do grupo após a mudança. O objeto inclui somente os valores das propriedades que foram alteradas. | 

O objeto JSON `group` contém os elementos descritos na tabela a seguir. 


| Nome do campo | Tipo | Description | 
| --- | --- | --- | 
| arn | String | O ARN do grupo. | 
| name | String | O nome amigável do grupo. | 
| unique-id | GUID | Um valor de GUID exclusivo que distingue entre um grupo que foi excluído e um grupo diferente que foi criado posteriormente com o mesmo nome e ARN. Use a concatenação do ARN e esse valor como uma chave exclusiva para o grupo ao consumir esses eventos em seu código.  | 

Os objetos JSON `GroupState` contêm os elementos descritos na tabela a seguir.


| Nome do campo | Tipo | Description | 
| --- | --- | --- | 
| description | String | A descrição fornecida pelo cliente do grupo de recursos. | 
| resource-query | Objeto JSON ResourceQuery | Uma representação JSON da consulta que define os membros do grupo. Este campo está presente somente para grupos baseados em uma consulta. A sintaxe desse campo é definida pelo [tipo de dados da ResourceQuery API](https://docs.aws.amazon.com//organizations/latest/APIReference/API_ResourceQuery.html). Exemplos disso estão incluídos nos eventos de exemplo de [Criar](#monitor-groups-syntax-detail-state-change-create) e [Atualizar](#monitor-groups-syntax-detail-state-change-update). | 
| group-configuration | Objeto JSON Configuration | Uma representação JSON dos parâmetros de configuração associados a um grupo vinculado ao serviço. 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) na Referência da API do AWS Resource Groups . | 

Cada um dos exemplos de código a seguir ilustra o conteúdo do campo `detail` para cada tipo `state-change`.

### Criar
<a name="monitor-groups-syntax-detail-state-change-create"></a>

`"state-change": "create"` 

O evento indica que um novo grupo foi criado. O evento carrega todas as propriedades de metadados do grupo definidas durante a criação do grupo. Este evento geralmente é seguido por um ou mais eventos de associação ao grupo, a menos que o grupo esteja vazio. As propriedades que têm um valor nulo não são exibidas no corpo do evento. 

O exemplo de evento a seguir indica um grupo de recursos recém-criado chamado `my-service-group`. Neste exemplo, o grupo usa uma consulta com tag que corresponde somente instâncias do Amazon Elastic Compute Cloud (Amazon EC2) que têm a tag `"project"="my-service"`.

```
{
    "version": "0",
    "id": "08f00e24-2e30-ec44-b824-8acddf1ac868",
    "detail-type": "ResourceGroups Group State Change",
    "source": "aws.resource-groups",
    "account": "123456789012",
    "time": "2020-09-29T09:59:01Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:resource-groups:us-east-1:123456789012:group/my-service-group"
    ],
    "detail": {
        "event-sequence": 1.0,
        "state-change": "create", 
        "group": {
            "arn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-service-group",
            "name": "my-service-group",
            "unique-id": "3dd07ab7-3228-4410-8cdc-6c4a10fcceea"
        },        
        "new-state": {
            "resource-query": {
                "type": "TAG_FILTERS_1_0",
                "query": "{
                    \"ResourceTypeFilters\": [\"AWS::EC2::Instance\"],
                    \"TagFilters\": [{\"Key\":\"project\", \"Values\":[\"my-service\"}]
                }"
            }
        }
    }
}
```

### Atualizar
<a name="monitor-groups-syntax-detail-state-change-update"></a>

`"state-change": "update"`

O evento indica que um grupo existente foi modificado de alguma forma. O evento carrega somente as propriedades que foram alteradas em relação ao estado anterior. As propriedades que não foram alteradas não são exibidas no corpo do evento.

O evento de exemplo a seguir indica que a consulta baseada em tags no grupo de recursos do exemplo anterior foi modificada para incluir também recursos de volume do Amazon EC2 no grupo.

```
{
    "version": "0",
    "id": "08f00e24-2e30-ec44-b824-8acddf1ac868",
    "detail-type": "ResourceGroups Group State Change",
    "source": "aws.resource-groups",
    "account": "123456789012",
    "time": "2020-09-29T09:59:01Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:resource-groups:us-east-1:123456789012:group/my-service-group"
    ],
    "detail": {
        "event-sequence": 3.0,
        "state-change": "update",
        "group": {
            "arn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-service-group",
            "name": "my-service",
            "unique-id": "3dd07ab7-3228-4410-8cdc-6c4a10fcceea"
        },        
        "new-state": {
            "resource-query": {
                "type": "TAG_FILTERS_1_0",
                "query": "{
                    \"ResourceTypeFilters\": [\"AWS::EC2::Instance\", \"AWS::EC2::Volume\"],
                    \"TagFilters\": [{\"Key\":\"project\", \"Values\":[\"my-service\"}]
                }"
            }
        },
        "old-state": {
            "resource-query": {
                "type": "TAG_FILTERS_1_0",
                "query": "{
                    \"ResourceTypeFilters\": [\"AWS::EC2::Instance\"],
                    \"TagFilters\": [{\"Key\":\"Project\", \"Values\":[\"my-service\"}]
                }"
            }
        }
    }
}
```

### Delete
<a name="monitor-groups-syntax-detail-state-change-delete"></a>

`"state-change": "delete"`

O evento indica que um grupo existente foi excluído. O campo de detalhes não inclui metadados sobre o grupo além de sua identificação. O campo `event-sequence` é redefinido após esse evento, pois é, por definição, o último evento deste `arn` e `unique-id`.

```
{
    "version": "0",
    "id": "08f00e24-2e30-ec44-b824-8acddf1ac868",
    "detail-type": "ResourceGroups Group State Change",
    "source": "aws.resource-groups",
    "account": "123456789012",
    "time": "2020-09-29T09:59:01Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:resource-groups:us-east-1:123456789012:group/my-service"
    ],
    "detail": {
        "event-sequence": 4.0,   
        "state-change": "delete",
        "group": {
            "arn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-service",
            "name": "my-service",
            "unique-id": "3dd07ab7-3228-4410-8cdc-6c4a10fcceea"
        }
    }
}
```

## Alteração de associação de grupo
<a name="monitor-groups-syntax-detail-membership-change"></a>

`"detail-type": "ResourceGroups Group Membership Change"`

Este valor `detail-type` indica que a associação do grupo foi alterada pela adição ou remoção de um recurso do grupo. Quando isso `detail-type` é especificado, o `resources` campo de nível superior inclui o ARN do grupo cuja associação foi alterada e de todos ARNs os recursos que foram adicionados ou removidos do grupo.

As informações incluídas na seção `details` quando este `detail-type` é especificado incluem os campos descritos na tabela a seguir.


| Nome do campo | Tipo | Description | 
| --- | --- | --- | 
| event-sequence | Duplo | Um número monotonicamente crescente que indica a sequência de eventos para um grupo específico. O número é redefinido quando o grupo é excluído e sua ID exclusiva é alterada.  | 
| group | Objeto JSON Group | Identifica o objeto de grupo associado ao evento por seu ARN, nome e ID exclusivo. | 
|  `resources`  | Matriz de objetos JSON de ResourceChange |  Uma matriz de recursos cuja associação ao grupo foi alterada. Este objeto `ResourceChange` contém os campos a seguir para cada recurso: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/ARG/latest/userguide/monitor-groups-syntax-detail.html)  | 

O exemplo de código a seguir ilustra o conteúdo do evento para um tipo típico de alteração de associação. Este exemplo mostra um recurso sendo adicionado ao grupo e um recurso sendo removido do grupo.

```
{
    "version": "0",
    "id": "08f00e24-2e30-ec44-b824-8acddf1ac868",
    "detail-type": "ResourceGroups Group Membership Change",
    "source": "aws.resource-groups",
    "account": "123456789012",
    "time": "2020-09-29T09:59:01Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:resource-groups:us-east-1:123456789012:group/my-service",
        "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111",
        "arn:aws:ec2:us-east-1:123456789012:instance/i-efef2222"
    ],
    "detail": {
        "event-sequence": 2.0,
        "group": {
            "arn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-service",
            "name": "my-service",
            "unique-id": "3dd07ab7-3228-4410-8cdc-6c4a10fcceea"
        },
        "resources": [
            {
                "membership-change": "add",
                "arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111",
                "resource-type": "AWS::EC2::Instance"
            },
            {
                "membership-change": "remove",
                "arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-efef2222",
                "resource-type": "AWS::EC2::Instance"
            }
        ]
    }
}
```

# Exemplo de padrões de eventos EventBridge personalizados para diferentes casos de uso
<a name="monitor-groups-example-eventbridge-filters"></a>

O exemplo de padrões de eventos EventBridge personalizados a seguir filtra os eventos gerados pelo Resource Groups para somente aqueles nos quais você está interessado para uma regra e um destino de evento específicos.

Nos exemplos de código a seguir, se for necessário um grupo ou recurso específico, substitua cada um *user input placeholder* por suas próprias informações.

Todos os eventos dos Grupos de recursos  

```
{
    "source": [ "aws.resource-groups" ]
}
```

Eventos de mudança de estado ou associação do grupo  
O exemplo de código a seguir é para todas as alterações de *estado* do grupo.  

```
{
    "source": [ "aws.resource-groups" ],
    "detail-type": [ "ResourceGroups Group State Change " ]
}
```
O exemplo de código a seguir é para todas as alterações de *associação* do grupo.  

```
{
    "source": [ "aws.resource-groups" ],
    "detail-type": [ "ResourceGroups Group Membership Change" ]
}
```

Eventos para um grupo específico  

```
{
    "source": [ "aws.resource-groups" ],
    "detail": {
        "group": {
            "arn": [ "my-group-arn" ]
        }
    }
}
```
O exemplo anterior captura as alterações no grupo especificado. O exemplo a seguir faz o mesmo e também captura as alterações quando o grupo é um recurso membro de outro grupo.  

```
{
    "source": [ "aws.resource-groups" ],
    "resources": [ "my-group-arn" ]
}
```

Eventos para um recurso específico  
Você pode filtrar somente eventos de alteração de associação de grupos para recursos específicos de membros.  

```
{
    "source": [ "aws.resource-groups" ],
    "detail-type": [ "ResourceGroups Group Membership Change " ],
    "resources": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-b188560f" ]
}
```

Eventos para um tipo de recurso específico  
Você pode usar a correspondência de prefixo com ARNs para combinar eventos de um tipo de recurso específico.  

```
{
    "source": [ "aws.resource-groups" ],
    "resources": [
        { "prefix": "arn:aws:ec2:us-east-1:123456789012:instance" } 
    ]
}
```
Como alternativa, você pode usar a correspondência exata usando identificadores `resource-type`, potencialmente correspondendo em mais de um tipo de forma concisa. Diferentemente do exemplo anterior, o exemplo a seguir corresponde somente aos eventos de alteração da associação ao grupo porque os eventos de mudança de estado do grupo não incluem um campo `resources` em seu campo `detail`.  

```
{
    "source": [ "aws.resource-groups" ],
    "detail": {
        "resources": {
                "resource-type": [ "AWS::EC2::Instance", "AWS::EC2::Volume" ]
         }
    }
}
```

Todos os eventos de remoção de recurso  

```
{
    "source": [ "aws.resource-groups" ],
    "detail-type": [ "ResourceGroups Group Membership Change" ],
    "detail": {
        "resources": {
                "membership-change": [ "remove" ]
        }
    }
}
```

Todos os eventos de remoção de recursos para um recurso específico  

```
 {
    "source": [ "aws.resource-groups" ],
    "detail-type": [ "ResourceGroups Group Membership Change" ],
    "detail": {
        "resources": {
                "membership-change": [ "remove" ],
                "arn": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-b188560f" ]
         }
    }
}
```
Você não pode usar a matriz `resources` de **nível superior** usada no primeiro exemplo desta seção para esse tipo de filtragem de eventos. Isso porque um recurso no elemento `resources` de nível superior pode ser um recurso que está sendo adicionado a um grupo e o evento ainda corresponderia. Em outras palavras, o exemplo de código a seguir pode retornar eventos inesperados. Em vez disso, use a sintaxe mostrada no exemplo anterior.  

```
{
    "source": [ "aws.resource-groups" ],
    "detail-type": [ "ResourceGroups Group Membership Change" ],
    "resources": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-b188560f" ],
    "detail": {
        "resources": {
                "membership-change": [ "remove" ]
         }
     }
}
```