

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Estructura y sintaxis de los eventos del ciclo de vida de Resource Groups
<a name="monitor-groups-syntax"></a>

**Topics**
+ [Estructura del campo `detail`](monitor-groups-syntax-detail.md)
+ [Ejemplos de patrones EventBridge de eventos personalizados para diferentes casos de uso](monitor-groups-example-eventbridge-filters.md)

Los eventos del ciclo de vida Grupos de recursos de AWS adoptan la forma de cadenas de objetos [JSON](https://json.org) en el siguiente formato general.

```
{
    "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 obtener más información sobre los campos comunes a todos los EventBridge eventos de Amazon, consulta [Amazon EventBridge events](https://docs.aws.amazon.com//eventbridge/latest/userguide/aws-events.html) en la *Guía del EventBridge usuario de Amazon*. Los detalles específicos de Resource Groups se explican en la siguiente tabla.


| Nombre del campo | Tipo | Description (Descripción) | 
| --- | --- | --- | 
| detail-type | Cadena |  En el caso de Resource Groups, el campo `detail-type` tiene siempre uno de los siguientes valores: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/ARG/latest/userguide/monitor-groups-syntax.html)  | 
| source | Cadena | En el caso de Resource Groups, este valor es siempre "aws.resource-groups". | 
| resources | Un conjunto de nombres de recursos de Amazon (ARNs) |  Este campo siempre incluye el [Nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html) del grupo con el cambio que desencadenó este evento. Este campo también puede incluir cualquier recurso agregado o eliminado del grupo, si corresponde. ARNs   | 
|  `detail`  | Cadena de objetos JSON | Esta es la carga del evento. El contenido del campo detail depende del valor del campo detail-type. [Para obtener más información, consulte la siguiente sección.](monitor-groups-syntax-detail.md) | 

# Estructura del campo `detail`
<a name="monitor-groups-syntax-detail"></a>

El campo `detail` incluye todos los detalles específicos del servicio Resource Groups sobre un cambio específico. El campo `detail` puede adoptar dos formas: un cambio de estado del grupo o un cambio de membresía, según el valor del campo `detail-type` descrito en la sección anterior.

**importante**  
Los grupos de recursos de estos eventos se identifican mediante una combinación del ARN del grupo y un campo `"unique-id"` que contiene un [UUID](https://wikipedia.org/wiki/Universally_unique_identifier). Al incluir un UUID como parte de la identidad de un grupo de recursos, puede distinguir entre un grupo que se elimina y un grupo diferente que se crea posteriormente con el mismo nombre. Le recomendamos que trate la concatenación del ARN y el identificador único como clave para el grupo de los programas que interactúan con estos eventos. 

## Cambio de estado del grupo
<a name="monitor-groups-syntax-detail-state-change"></a>

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

Este valor `detail-type` indica que el estado del propio grupo ha cambiado, incluidos sus metadatos. Este cambio se produce cuando se crea, actualiza o elimina un grupo, tal como se indica en el campo `"change"` del `detail`. 

La información incluida en la sección `details` cuando se especifica este `detail-type` incluye los campos que se describen en la siguiente tabla.


| Nombre del campo | Tipo | Description (Descripción) | 
| --- | --- | --- | 
| event-sequence | Double | Un número que aumenta de forma repetitiva y que especifica la secuencia de eventos de un grupo específico. El número se restablece al eliminar el grupo y crear otro grupo con el mismo nombre.  | 
| group | Objeto JSON de [`Group`](#monitor-groups-syntax-detail-group-object) | El objeto de grupo asociado al evento por su ARN, nombre e ID único. | 
| state-change | Cadena | El tipo de cambio de estado que se ha producido. Puede ser cualquiera de los siguientes valores:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/ARG/latest/userguide/monitor-groups-syntax-detail.html) | 
| old-state  | Objeto JSON de GroupState | El estado del grupo antes del cambio. El objeto incluye solo los valores de las propiedades que han cambiado.  | 
|  `new-state`  | Objeto JSON de GroupState | El estado del grupo después del cambio. El objeto incluye solo los valores de las propiedades que han cambiado. | 

El objeto JSON de `group` contiene los elementos que se describen en la siguiente tabla. 


| Nombre del campo | Tipo | Description (Descripción) | 
| --- | --- | --- | 
| arn | Cadena | El ARN del grupo. | 
| name | Cadena | Es el nombre fácil de recordar del grupo. | 
| unique-id | GUID | Un valor GUID único que distingue entre un grupo que se eliminó y un grupo diferente que se creó posteriormente con el mismo nombre y ARN. Utilice la concatenación del ARN y este valor como clave única para el grupo cuando consuma estos eventos en su código.  | 

Los objetos JSON de `GroupState` contienen los elementos que se describen en la siguiente tabla.


| Nombre del campo | Tipo | Description (Descripción) | 
| --- | --- | --- | 
| description | Cadena | Descripción del grupo de recursos proporcionados por el cliente. | 
| resource-query | Objeto JSON de ResourceQuery | Una representación en JSON de la consulta que define a los miembros del grupo. Este campo solo está presente para los grupos basados en una consulta. La sintaxis de este campo viene definida por el [tipo de datos de la ResourceQuery API](https://docs.aws.amazon.com//organizations/latest/APIReference/API_ResourceQuery.html). Se incluyen ejemplos de esto en los ejemplos de eventos de [Create](#monitor-groups-syntax-detail-state-change-create) y [Update](#monitor-groups-syntax-detail-state-change-update). | 
| group-configuration | Objeto JSON de Configuration | Una representación en JSON de los parámetros de configuración asociados a un grupo vinculado a un servicio. Para obtener más información, consulte [Configuraciones de servicio para grupos de recursos](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html) en la referencia de la API de Grupos de recursos de AWS . | 

Cada uno de los siguientes ejemplos de código ilustra el contenido del campo `detail` para cada tipo de `state-change`.

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

`"state-change": "create"` 

El evento indica que se ha creado un grupo nuevo. El evento incluye todas las propiedades de metadatos del grupo establecidas durante la creación del grupo. Este evento suele ir seguido de uno o más eventos de pertenencia a un grupo, a menos que el grupo esté vacío. Las propiedades que tienen un valor nulo no se muestran en el cuerpo del evento. 

El siguiente evento de ejemplo indica un grupo de recursos recién creado denominado `my-service-group`. En este ejemplo, el grupo usa una consulta basada en etiquetas que solo coincide con las instancias de Amazon Elastic Compute Cloud (Amazon EC2) que tienen la etiqueta `"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\"}]
                }"
            }
        }
    }
}
```

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

`"state-change": "update"`

El evento indica que un grupo existente se modificó de alguna manera. El evento incluye solo las propiedades que cambiaron con respecto al estado anterior. Las propiedades que tienen un valor nulo no se muestran en el cuerpo del evento.

El siguiente evento de ejemplo indica que la consulta basada en etiquetas del grupo de recursos del ejemplo anterior se modificó para incluir también los recursos de volumen de Amazon EC2 en el 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"`

El evento indica que se ha eliminado un grupo existente. El campo de detalle no incluye metadatos sobre el grupo aparte de su identificación. El campo `event-sequence` se restablece después de este evento, ya que, por definición, es el último evento de este `arn` y `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"
        }
    }
}
```

## Cambio de pertenencia a los grupos
<a name="monitor-groups-syntax-detail-membership-change"></a>

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

Este valor `detail-type` indica que la pertenencia al grupo se modificó debido a la adición o eliminación de un recurso del grupo. Cuando `detail-type` se especifica esto, el `resources` campo de nivel superior incluye el ARN del grupo cuya membresía se ha modificado y ARNs el de cualquier recurso que se haya agregado o eliminado del grupo.

La información incluida en la sección `details` cuando se especifica este `detail-type` incluye los campos que se describen en la siguiente tabla.


| Nombre del campo | Tipo | Description (Descripción) | 
| --- | --- | --- | 
| event-sequence | Double | Un número que aumenta de forma repetitiva y que indica la secuencia de eventos de un grupo específico. El número se restablece cuando se elimina el grupo y cambia su identificador único.  | 
| group | Objeto JSON de Group | Identifica el objeto de grupo asociado al evento por su ARN, nombre e ID único. | 
|  `resources`  | Matriz de objetos JSON ResourceChange |  Conjunto de recursos cuya pertenencia a un grupo ha cambiado. Este objeto `ResourceChange` incluye los siguientes campos para cada recurso: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/ARG/latest/userguide/monitor-groups-syntax-detail.html)  | 

El siguiente ejemplo de código ilustra el contenido del evento para un tipo de cambio de pertenencia típico. En este ejemplo, se muestra un recurso que se agrega al grupo y otro que se quita del 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"
            }
        ]
    }
}
```

# Ejemplos de patrones EventBridge de eventos personalizados para diferentes casos de uso
<a name="monitor-groups-example-eventbridge-filters"></a>

En el siguiente ejemplo, los patrones de eventos EventBridge personalizados filtran los eventos generados por Resource Groups y los filtran solo a aquellos que le interesen para una regla y un objetivo de eventos específicos.

En los siguientes ejemplos de código, si se necesita un grupo o recurso específico, sustituya cada uno *user input placeholder* por su propia información.

Todos los eventos de Resource Groups  

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

Eventos de cambio de estado o membresía del grupo  
El siguiente ejemplo de código es para todos los cambios de *estado* del grupo.  

```
{
    "source": [ "aws.resource-groups" ],
    "detail-type": [ "ResourceGroups Group State Change " ]
}
```
El siguiente ejemplo de código es para todos los cambios de *pertenencia* del grupo.  

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

Eventos para un grupo específico  

```
{
    "source": [ "aws.resource-groups" ],
    "detail": {
        "group": {
            "arn": [ "my-group-arn" ]
        }
    }
}
```
El ejemplo anterior captura los cambios en el grupo especificado. El siguiente ejemplo hace lo mismo y también captura los cambios cuando el grupo es un recurso miembro de otro grupo.  

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

Eventos para un recurso específico  
Solo puede filtrar los eventos de cambio de pertenencia a un grupo para recursos de miembros específicos.  

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

Eventos para un tipo de recurso específico  
Puede utilizar el prefijo que coincida con ARNs para hacer coincidir los eventos de un tipo de recurso específico.  

```
{
    "source": [ "aws.resource-groups" ],
    "resources": [
        { "prefix": "arn:aws:ec2:us-east-1:123456789012:instance" } 
    ]
}
```
Como alternativa, puede utilizar la coincidencia exacta mediante identificadores `resource-type`, que podrían coincidir en más de un tipo de forma concisa. A diferencia del ejemplo anterior, el ejemplo siguiente solo coincide con los eventos de cambio de pertenencia al grupo porque los eventos de cambio de estado del grupo no incluyen un campo `resources` en su campo `detail`.  

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

Todos los eventos de eliminación de recursos  

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

Todos los eventos de eliminación de recursos de un 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" ]
         }
    }
}
```
No puede usar la matriz `resources` **de nivel superior** que se usó en el primer ejemplo de esta sección para este tipo de filtrado de eventos. Esto se debe a que un recurso del elemento `resources` de nivel superior podría ser un recurso que se está agregando a un grupo y el evento seguiría coincidiendo. En otras palabras, el siguiente ejemplo de código puede devolver eventos inesperados. En su lugar, utilice la sintaxis que se muestra en el ejemplo 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" ]
         }
     }
}
```