

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Resource Groups 수명 주기 이벤트의 구조 및 구문
<a name="monitor-groups-syntax"></a>

**Topics**
+ [`detail` 필드의 구조](monitor-groups-syntax-detail.md)
+ [다양한 사용 사례에 대한 EventBridge 사용자 지정 이벤트 패턴 예제](monitor-groups-example-eventbridge-filters.md)

의 수명 주기 이벤트는 다음과 같은 일반 형식의 [JSON](https://json.org) 객체 문자열 형식을 AWS Resource Groups 취합니다.

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

*모든 아마존 EventBridge 이벤트에 공통적인 필드에 대한 자세한 내용은 Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 이벤트](https://docs.aws.amazon.com//eventbridge/latest/userguide/aws-events.html)를 참조하세요. Resource Groups와 관련된 세부 정보는 다음 표에 설명되어 있습니다.


| 필드 이름 | Type | 설명 | 
| --- | --- | --- | 
| detail-type | 문자열 |  Resource Groups의 경우 `detail-type` 필드는 항상 다음 값 중 하나입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/ARG/latest/userguide/monitor-groups-syntax.html)  | 
| source | 문자열 | Resource Groups의 경우 이 값은 항상 "aws.resource-groups"입니다. | 
| resources | Amazon 리소스 이름(ARN)의 배열입니다. |  이 필드에는 이 이벤트를 트리거한 변경 사항이 있는 그룹의 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html)이 항상 포함됩니다. 해당하는 경우 이 필드에는 그룹에 추가되거나 그룹에서 제거된 모든 리소스의 ARN도 포함될 수 있습니다.  | 
|  `detail`  | JSON 객체 문자열 | 이벤트의 페이로드입니다. detail 필드의 내용은 detail-type의 값에 따라 달라집니다. [자세한 내용은 다음 섹션을 참조하세요.](monitor-groups-syntax-detail.md) | 

# `detail` 필드의 구조
<a name="monitor-groups-syntax-detail"></a>

`detail` 필드에는 특정 변경 사항에 대한 모든 Resource Groups 서비스별 세부 정보가 포함됩니다. `detail` 필드는 이전 섹션에서 설명한 `detail-type` 필드 값에 따라 그룹 상태 변경 또는 멤버십 변경이라는 두 가지 형식 중 하나를 가질 수 있습니다.

**중요**  
이러한 이벤트의 리소스 그룹은 그룹의 ARN과 [UUID](https://wikipedia.org/wiki/Universally_unique_identifier)가 포함된 `"unique-id"` 필드의 조합으로 식별됩니다. 리소스 그룹 자격 증명의 일부로 UUID를 포함하면 삭제된 그룹과 나중에 같은 이름으로 생성된 다른 그룹을 구분할 수 있습니다. ARN과 고유 ID의 결합을 이러한 이벤트와 상호 작용하는 프로그램에서 그룹의 키로 취급하는 것이 좋습니다.

## 그룹 상태 변경
<a name="monitor-groups-syntax-detail-state-change"></a>

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

이 `detail-type` 값은 메타데이터를 포함한 그룹 자체의 상태가 변경되었음을 나타냅니다. 이 변경은 그룹이 생성, 업데이트 또는 삭제될 때 발생합니다(`detail`의 `"change"` 필드에 의해 표시됨).

이 `detail-type`을 지정할 때 `details` 섹션에 포함되는 정보에는 다음 표에 설명된 필드가 포함됩니다.


| 필드 이름 | Type | 설명 | 
| --- | --- | --- | 
| event-sequence | 배정밀도 실수 | 일정하게 증가하는 숫자로, 특정 그룹의 이벤트 순서를 지정합니다. 그룹을 삭제하고 동일한 이름의 다른 그룹을 만들면 번호가 재설정됩니다. | 
| group | [`Group`](#monitor-groups-syntax-detail-group-object) JSON 객체 | ARN, 이름, 고유 ID를 기준으로 이벤트와 연결된 그룹 객체입니다. | 
| state-change | 문자열 | 발생한 상태 변경의 유형입니다. 값은 다음 중 하나일 수 있습니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/ARG/latest/userguide/monitor-groups-syntax-detail.html) | 
| old-state  | GroupState JSON 객체 | 변경 이전의 그룹 상태입니다. 객체에는 변경된 속성 값만 포함됩니다. | 
|  `new-state`  | GroupState JSON 객체 | 변경 후의 그룹 상태입니다. 객체에는 변경된 속성 값만 포함됩니다. | 

`group` JSON 객체에는 다음 표에 설명된 요소가 포함되어 있습니다.


| 필드 이름 | Type | 설명 | 
| --- | --- | --- | 
| arn | 문자열 | 그룹의 ARN입니다. | 
| name | 문자열 | 사용자의 기억하기 쉬운 이름입니다. | 
| unique-id | GUID | 삭제된 그룹과 나중에 같은 이름 및 ARN으로 생성된 다른 그룹을 구분하는 고유한 GUID 값입니다. 코드에서 이러한 이벤트를 사용할 때는 ARN과 이 값을 결합하여 그룹의 고유 키로 사용하세요. | 

`GroupState` JSON 객체에는 다음 표에 설명된 요소가 포함되어 있습니다.


| 필드 이름 | Type | 설명 | 
| --- | --- | --- | 
| description | 문자열 | 고객이 제공한 리소스 그룹 설명입니다. | 
| resource-query | ResourceQuery JSON 객체 | 그룹 구성원을 정의하는 쿼리의 JSON 표현입니다. 이 필드는 쿼리를 기반으로 하는 그룹에만 표시됩니다. 이 필드의 구문은 [ResourceQuery API 데이터 유형](https://docs.aws.amazon.com//organizations/latest/APIReference/API_ResourceQuery.html)에 의해 정의됩니다. 이에 대한 예는 [Create](#monitor-groups-syntax-detail-state-change-create) 및 [Update](#monitor-groups-syntax-detail-state-change-update) 이벤트 예제에 포함되어 있습니다. | 
| group-configuration | Configuration JSON 객체 | 서비스 연결 그룹과 관련된 구성 파라미터의 JSON 표현입니다. 자세한 내용은 AWS Resource Groups API 참조의 [리소스 그룹의 서비스 구성](https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html)을 참조하세요. | 

다음 각 코드 예제는 각 `state-change` 유형에 대한 `detail` 필드의 내용을 보여줍니다.

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

`"state-change": "create"` 

이벤트는 새 그룹이 생성되었음을 나타냅니다. 이벤트는 그룹 생성 중에 설정된 모든 그룹 메타데이터 속성을 포함합니다. 그룹이 비어 있는 경우를 제외하고 일반적으로 이 이벤트 다음에는 하나 이상의 그룹 멤버십 이벤트가 이어집니다. null 값이 있는 속성은 이벤트 본문에 표시되지 않습니다.

다음 이벤트 예제는 `my-service-group`이라는 이름의 새로 생성된 리소스 그룹을 나타냅니다. 이 예제에서 그룹은 `"project"="my-service"` 태그가 있는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스와만 매칭하는 태그 기반 쿼리를 사용합니다.

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

### 업데이트
<a name="monitor-groups-syntax-detail-state-change-update"></a>

`"state-change": "update"`

이벤트는 기존 그룹이 어떤 식으로든 수정되었음을 나타냅니다. 이벤트는 이전 상태에서 변경된 속성만 포함합니다. null 값이 있는 속성은 이벤트 본문에 표시되지 않습니다.

다음 이벤트 예제는 이전 예제의 리소스 그룹에 있는 태그 기반 쿼리가 그룹에 Amazon EC2 볼륨 리소스도 포함하도록 수정되었음을 나타냅니다.

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

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

`"state-change": "delete"`

이벤트는 기존 그룹이 삭제되었음을 나타냅니다. 세부 정보 필드에는 ID 외에는 그룹에 대한 메타데이터가 포함되지 않습니다. 이 이벤트는 정의상 이 `arn` 및 `unique-id`에 대한 마지막 이벤트이므로 이벤트 이후에 `event-sequence` 필드가 재설정됩니다.

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

## 그룹 멤버십 변경
<a name="monitor-groups-syntax-detail-membership-change"></a>

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

이 `detail-type` 값은 리소스가 그룹에 추가되거나 그룹에서 제거되어 그룹 멤버십이 변경되었음을 나타냅니다. 이 `detail-type`을 지정하는 경우 최상위 `resources` 필드에는 멤버십이 변경된 그룹의 ARN과 그룹에 추가되거나 그룹에서 제거된 리소스의 ARN이 포함됩니다.

이 `detail-type`을 지정할 때 `details` 섹션에 포함되는 정보에는 다음 표에 설명된 필드가 포함됩니다.


| 필드 이름 | Type | 설명 | 
| --- | --- | --- | 
| event-sequence | 배정밀도 실수 | 일정하게 증가하는 숫자로, 특정 그룹에 대한 이벤트 순서를 나타냅니다. 그룹이 삭제되고 고유 ID가 변경되면 번호가 재설정됩니다. | 
| group | Group JSON 객체 | ARN, 이름, 고유 ID를 기준으로 이벤트와 연결되는 그룹 객체입니다. | 
|  `resources`  | ResourceChange JSON 객체 배열 |  그룹 멤버십이 변경된 리소스의 배열입니다. 이 `ResourceChange` 객체는 각 리소스에 대한 다음 필드를 포함합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/ARG/latest/userguide/monitor-groups-syntax-detail.html)  | 

다음 코드 예제는 일반적인 멤버십 변경 유형에 대한 이벤트 내용을 보여줍니다. 이 예제에서는 그룹에 리소스 하나가 추가되고 그룹에서 리소스 하나가 제거되는 것을 보여줍니다.

```
{
    "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"
            }
        ]
    }
}
```

# 다양한 사용 사례에 대한 EventBridge 사용자 지정 이벤트 패턴 예제
<a name="monitor-groups-example-eventbridge-filters"></a>

다음 EventBridge 사용자 지정 이벤트 패턴 예제는 Resource Groups에서 생성한 이벤트를 특정 이벤트 규칙 및 대상에 대해 원하는 이벤트로만 필터링합니다.

다음 코드 예제에서 특정 그룹이나 리소스가 필요한 경우 각 *사용자 입력 자리 표시자*를 실제 정보로 바꿉니다.

모든 Resource Groups 이벤트  

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

그룹 상태 또는 멤버십 변경 이벤트  
다음 코드 예제는 모든 그룹 *상태* 변경에 해당합니다.  

```
{
    "source": [ "aws.resource-groups" ],
    "detail-type": [ "ResourceGroups Group State Change " ]
}
```
다음 코드 예제는 모든 그룹 *멤버십* 변경에 해당합니다.  

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

특정 그룹에 대한 이벤트  

```
{
    "source": [ "aws.resource-groups" ],
    "detail": {
        "group": {
            "arn": [ "my-group-arn" ]
        }
    }
}
```
이전 예제는 지정된 그룹의 변경 내용을 캡처합니다. 다음 예제는 동일한 작업을 수행하며 해당 그룹이 다른 그룹의 구성원 리소스인 경우의 변경 내용도 캡처합니다.  

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

특정 리소스에 대한 이벤트  
특정 구성원 리소스에 대한 그룹 멤버십 변경 이벤트만 캡처하도록 필터링할 수 있습니다.  

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

특정 리소스 유형에 대한 이벤트  
ARN과의 접두사 매칭을 사용하여 특정 리소스 유형에 대한 이벤트를 매칭할 수 있습니다.  

```
{
    "source": [ "aws.resource-groups" ],
    "resources": [
        { "prefix": "arn:aws:ec2:us-east-1:123456789012:instance" } 
    ]
}
```
또는 `resource-type` 식별자를 사용한 정확한 매칭을 통해 둘 이상의 유형을 간결하게 매칭할 수도 있습니다. 이전 예제와 달리 다음 예제에서는 그룹 상태 변경 이벤트의 `detail` 필드에 `resources` 필드가 포함되지 않으므로 그룹 멤버십 변경 이벤트만 매칭합니다.  

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

모든 리소스 제거 이벤트  

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

특정 리소스에 대한 모든 리소스 제거 이벤트  

```
 {
    "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" ]
         }
    }
}
```
이 유형의 이벤트 필터링에는 이 섹션의 첫 번째 예제에서 사용된 **최상위** `resources` 배열을 사용할 수 없습니다. 이는 최상위 `resources` 요소의 리소스가 그룹에 추가되는 리소스이지만 이벤트는 여전히 매칭될 수 있기 때문입니다. 즉, 다음 코드 예제는 예상치 못한 이벤트를 반환할 수 있습니다. 대신 이전 예제에 표시된 구문을 사용하세요.  

```
{
    "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" ]
         }
     }
}
```