

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

# 그룹 수명 주기 이벤트: 리소스 그룹의 변경 사항 모니터링
<a name="monitor-groups"></a>

 AWS Resource Groups 를 사용하여 리소스를 그룹으로 구성한 후 해당 그룹에 *이벤트*로 표시되는 변경 사항이 있는지 모니터링할 수 있습니다. 일종의 조치를 취하라는 신호로 그룹 이벤트에 대한 알림을 받을 수 있습니다. 예를 들어 그룹 멤버십이 변경될 때마다 알림을 보내도록 구성할 수 있습니다. 새 그룹 구성원을 추가하는 이벤트를 사용하여, 변경 사항을 프로그래밍 방식으로 검토하여 새 그룹 구성원이 조직에서 설정한 규정 준수 요구 사항을 충족하는지 확인하는 Lambda 함수를 트리거할 수 있습니다. 이러한 Lambda 함수는 이러한 요구 사항을 충족하지 못하는 새 그룹 구성원에 대해 자동 문제 해결을 수행할 수 있습니다. 그룹 구성원 제거로 인해 발생한 이벤트는 연결된 리소스 삭제와 같은 필요한 정리를 수행하는 Lambda 함수를 트리거할 수 있습니다.

리소스 그룹에 대한 그룹 수명 주기 이벤트를 켜면 그룹 변경에 대한 이벤트를 Amazon EventBridge에서 캡처하고 EventBridge가 지원하는 다양한 대상 서비스에서 사용할 수 있습니다. 그런 다음 시나리오에 필요한 조치를 자동으로 수행하도록 해당 대상 서비스를 구성할 수 있습니다. 이러한 대상에는 Amazon Simple Notification Service(Amazon SNS), Amazon Simple Queue Service(Amazon SQS) 및와 같은 다양한 AWS 서비스가 포함됩니다 AWS Lambda. Lambda와 같은 서비스를 사용하면 이벤트가 코드를 사용하여 필요한 작업을 수행하는 *프로그래밍 방식*의 응답을 트리거할 수 있습니다. EventBridge로 대상으로 지정할 수 있는 AWS 서비스 목록은 [Amazon EventBridge 사용 설명서의 Amazon EventBridge 대상](https://docs.aws.amazon.com//eventbridge/latest/userguide/eventbridge-targets.html)을 참조하세요. * EventBridge *

그룹 수명 주기 이벤트를 켜면가 다음 항목을 AWS Resource Groups 생성합니다.
+ 리소스에 태그 및 CloudFormation 스택에 대한 변경 사항이 있는지 모니터링할 수 있는 권한이 있는 AWS Identity and Access Management (IAM) 서비스 연결 역할입니다.
+ 리소스에 대한 태그 또는 스택 변경 사항의 세부 정보를 캡처하는 Resource Groups 관리형 EventBridge 규칙입니다. EventBridge는 이 규칙을 사용하여 Resource Groups에 이러한 변경 사항을 알립니다. 그런 다음 Resource Groups가 사용자 지정 규칙이 처리 작업을 수행하도록 EventBridge에 보낼 멤버십 이벤트를 생성할 수 있습니다.

서비스 연결 역할은 Resource Groups 서비스*에서만* 수임할 수 있습니다. Resource Groups가 이 기능에 사용하는 서비스 연결 역할에 대한 자세한 내용은 [Resource Groups에 대한 서비스 연결 역할 사용](security_iam_service-linked-roles.md) 섹션을 참조하세요.

이 기능을 켜면 리소스 그룹을 다음과 같이 변경할 때 Resource Groups가 이벤트를 생성합니다.
+ 새 리소스 그룹을 생성합니다.
+ [쿼리 기반 리소스 그룹](gettingstarted-query.md)의 멤버십을 정의하는 쿼리를 업데이트합니다.
+ [서비스 연결 리소스 그룹](https://docs.aws.amazon.com//ARG/latest/APIReference/about-slg.html)의 구성을 업데이트합니다.
+ 리소스 그룹에 대한 설명을 업데이트합니다.
+ 리소스 그룹을 삭제합니다.
+ 그룹에 리소스를 추가하거나 그룹에서 리소스를 제거하여 리소스 그룹의 멤버십을 변경합니다. 태그가 변경되거나 CloudFormation 스택이 변경될 때도 멤버십 변경이 발생할 수 있습니다.

**중요**  
그룹 이벤트를 성공적으로 수신하고 이에 응답하려면 Resource Groups와 EventBridge를 모두 변경해야 합니다. 어떤 순서로든 변경을 수행할 수 있지만 두 서비스를 모두 변경하기 전까지는 EventBridge 대상에 그룹 이벤트가 게시되지 않습니다.
리소스 그룹 변경 사항에는 리소스 그룹 자체에 연결된 태그에 대한 변경 내용이 포함되지 않습니다. 그룹의 태그 변경을 기반으로 이벤트를 생성하려면 `aws.resource-groups` 소스 대신 `aws.tag` 소스를 사용하는 EventBridge 규칙을 사용해야 합니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [AWS 리소스에 대한 태그 변경 이벤트를](https://docs.aws.amazon.com//eventbridge/latest/userguide/event-types.html#tag-event-types) 참조하세요.

**Topics**
+ [Resource Groups에서 그룹 수명 주기 이벤트 켜기](monitor-groups-turn-on.md)
+ [그룹 수명 주기 이벤트를 캡처하고 알림을 게시하기 위한 EventBridge 규칙 생성](monitor-groups-create-rule.md)
+ [그룹 수명 주기 이벤트 끄기](monitor-groups-turn-off.md)
+ [Resource Groups 수명 주기 이벤트의 구조 및 구문](monitor-groups-syntax.md)

# Resource Groups에서 그룹 수명 주기 이벤트 켜기
<a name="monitor-groups-turn-on"></a>

리소스 그룹의 수명 주기 변경 사항에 대한 알림을 받으려면 그룹 수명 주기 이벤트를 켜면 됩니다. 그러면 Resource Groups에서 그룹의 변경 사항에 대한 정보를 이 Amazon EventBridge에 제공합니다. EventBridge에서 [EventBridge 서비스에 정의한 규칙](monitor-groups-create-rule.md)을 사용하여 변경 사항을 평가하고 조치를 수행할 수 있습니다.

**최소 권한**  
에서 그룹 수명 주기 이벤트를 켜려면 다음 권한을 가진 AWS Identity and Access Management (IAM) 보안 주체로 로그인 AWS 계정해야 합니다.  
`resource-groups:UpdateAccountSettings`
`iam:CreateServiceLinkedRole`
`events:PutRule`
`events:PutTargets`
`events:DescribeRule`
`events:ListTargetsByRule`
`cloudformation:DescribeStacks`
`cloudformation:ListStackResources`
`tag:GetResources`

에서 그룹 수명 주기 이벤트를 처음 켜면 AWS 계정 Resource Groups는 [라는 서비스 연결 역할을 `AWSServiceRoleForResourceGroups`](security_iam_service-linked-roles.md)생성합니다. 이 관리형 역할에는 Resource Groups 관리형 EventBridge 규칙을 사용할 권한이 있습니다. 이 규칙은 리소스에 연결된 태그와 계정의 CloudFormation 스택을 모니터링하여 변경 사항이 있는지 확인합니다. 그런 다음 Resource Groups는 Amazon EventBridge의 기본 이벤트 버스에 해당 변경 사항을 게시합니다. 이 서비스는 `[Managed.ResourceGroups.TagChangeEvents](https://console.aws.amazon.com/events/home#/eventbus/default/rules/Managed.ResourceGroups.TagChangeEvents)`라는 이름의 EventBridge 관리형 규칙도 생성합니다. 이 규칙은 리소스의 태그 변경에 대한 세부 정보를 캡처합니다. 이렇게 하면 Resource Groups가 사용자 지정 규칙이 처리 작업을 수행하도록 EventBridge에 보낼 멤버십 이벤트를 생성할 수 있습니다. 그러면 EventBridge 규칙이 이벤트에 응답하여 규칙의 구성된 대상에 알림을 전송할 수 있습니다.

이러한 단계를 완료하면 해당 이벤트를 찾는 규칙이 몇 분 안에 알림을 받기 시작합니다.

를 사용하거나 AWS Management Console 또는 SDK API 중 하나의 명령을 AWS CLI 사용하여 그룹 수명 주기 이벤트를 켤 수 있습니다. APIs 

**참고**  
리소스 그룹 할당량이 너무 높으면 그룹 수명 주기 이벤트를 켤 수 없습니다. 자세한 내용은 [서비스 할당량 보기를 참조하세요](https://docs.aws.amazon.com/servicequotas/latest/userguide/gs-request-quota).

------
#### [ AWS Management Console ]

**Resource Groups 콘솔에서 그룹 수명 주기 이벤트를 켜는 방법**

1. Resource Groups 콘솔에서 **[설정](https://console.aws.amazon.com/resource-groups/groups/settings)** 페이지를 엽니다.

1. **그룹 수명 주기 이벤트** 섹션에서 **알림이 꺼져 있음** 옆의 스위치를 선택합니다.

1. 확인 대화 상자에서 **알림 켜기**를 선택합니다.

   기능 스위치에 **알림이 켜져 있음**이 표시됩니다.

이것으로 프로세스의 첫 번째 부분이 완료됩니다. 이벤트 알림을 켠 후, 이벤트를 캡처하고 처리를 위해 특정 AWS 서비스 서비스로 전송하는 [규칙을 Amazon EventBridge에서 생성](monitor-groups-create-rule.md)할 수 있습니다.

------
#### [ AWS CLI ]

**AWS CLI 또는 AWS SDKs를 사용하여 그룹 수명 주기 이벤트를 켜려면**  
다음 예제에서는를 사용하여 Resource Groups에서 그룹 수명 주기 이벤트를 AWS CLI 켜는 방법을 보여줍니다. 표시된 것과 똑같은 서비스 보안 주체 파라미터와 함께 명령을 입력합니다. 출력에는 기능의 현재 상태와 원하는 상태가 모두 표시됩니다.

```
$ aws resource-groups update-account-settings \
    --group-lifecycle-events-desired-status ACTIVE
{
    "AccountSettings": {
        "GroupLifecycleEventsDesiredStatus": "ACTIVE",
        "GroupLifecycleEventsStatus": "IN_PROGRESS"
    }
}
```

다음 명령 예제를 실행하여 기능이 켜져 있는지 확인할 수 있습니다. 두 상태 필드에 동일한 값이 표시되면 작업이 완료된 것입니다.

```
$ aws resource-groups get-account-settings
{
    "AccountSettings": {
        "GroupLifecycleEventsDesiredStatus": "ACTIVE",
        "GroupLifecycleEventsStatus": "ACTIVE"
    }
}
```

자세한 정보는 다음 자료를 참조하세요.
+ AWS CLI – [aws resource-groups update-account-settings](https://docs.aws.amazon.com//cli/latest/reference/resource-groups/update-account-settings.html) 및 [aws resource-groups get-account-settings](https://docs.aws.amazon.com//cli/latest/reference/resource-groups/get-account-settings.html)
+ API – [UpdateAccountSettings](https://docs.aws.amazon.com//ARG/latest/APIReference/API_UpdateAccountSettings.html) 및 [GetAccountSettings](https://docs.aws.amazon.com//ARG/latest/APIReference/API_GetAccountSettings.html)

------

# 그룹 수명 주기 이벤트를 캡처하고 알림을 게시하기 위한 EventBridge 규칙 생성
<a name="monitor-groups-create-rule"></a>

에서 [리소스 그룹에 대한 그룹 수명 주기 이벤트를 켜](monitor-groups-turn-on.md) AWS Resource Groups 서 Amazon EventBridge에 이벤트를 게시할 수 있습니다. 그런 다음 AWS 서비스 추가 처리를 위해 다른에 이벤트를 전송하여 해당 이벤트에 응답하는 EventBridge 규칙을 생성할 수 있습니다.

------
#### [ AWS CLI ]

이벤트를 캡처하여 원하는 대상 서비스로 보내는 규칙을 EventBridge에서 생성하는 프로세스에는 두 개의 개별 CLI 명령이 필요합니다.

1. [원하는 이벤트를 캡처하는 EventBridge 규칙을 생성합니다.](#monitor-cli-create-rule)

1. [이벤트를 처리할 수 있는 대상을 EventBridge 규칙에 연결합니다.](#monitor-cli-attach-target)

1단계: 이벤트를 캡처하는 EventBridge 규칙 생성  
다음 AWS CLI `[put-rule](https://docs.aws.amazon.com//cli/latest/reference/events/put-rule.html)` 예제 명령은 ***모든*** Resource Groups 수명 주기 이벤트 변경 사항을 캡처하는 EventBridge 규칙을 생성합니다.  

```
$ aws events put-rule \
    --name "CatchAllResourceGroupEvents" \
    --event-pattern '{"source":["aws.resource-groups"]}'
{
    "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/CatchAllResourceGroupEvents"
}
```
출력은 새 규칙의 Amazon 리소스 이름(ARN)을 포함합니다.  
인용 문자열을 포함하는 파라미터 값에는 사용 중인 운영 체제와 쉘에 따라 다른 형식 지정 규칙이 적용됩니다. 이 안내서의 예제에서는 Linux BASH 쉘에서 작동하는 명령을 보여줍니다. Windows 명령 프롬프트와 같이 다른 운영 체제에서 포함된 인용 기호로 문자열의 형식을 지정하는 방법에 대한 지침은 *AWS Command Line Interface 사용 설명서*의 [문자열 안에 따옴표 사용](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-quoting-strings.html#cli-usage-parameters-quoting-strings-containing)을 참조하세요.  
파라미터 문자열이 점점 복잡해짐에 따라 명령줄에 직접 입력하는 대신 [텍스트 파일에서 파라미터 값을 수락](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html)하는 것이 더 쉽고 오류가 덜 발생할 수 있습니다.
다음 이벤트 패턴은 이벤트를 ARN으로 식별되는 지정된 그룹과 관련된 이벤트로만 제한합니다. 이 이벤트 패턴은 복잡한 JSON 문자열로, 적절하게 이스케이프된 한 줄의 JSON 문자열로 압축하면 가독성이 훨씬 떨어집니다. 대신 이를 파일에 저장할 수 있습니다.  
이벤트 패턴 JSON 문자열을 파일에 저장합니다. 다음 코드 예제에서 파일은 `eventpattern.txt`입니다.  

```
{
    "source": [ "aws.resource-groups" ],
    "detail": {
        "group": {
            "arn": [ "my-resource-group-arn" ]
        }
    }
}
```
그런 다음, 다음 명령을 실행하여 규칙을 생성하고 파일에서 사용자 지정 이벤트 패턴을 검색합니다.  

```
$ aws events put-rule \
    --name "CatchResourceGroupEventsForMyGroup" \
    --event-pattern file://eventpattern.txt
{
    "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/CatchResourceGroupEventsForMyGroup"
}
```
다른 유형의 Resource Groups 이벤트를 캡처하려면 `--event-pattern` 문자열을 섹션 [다양한 사용 사례에 대한 EventBridge 사용자 지정 이벤트 패턴 예제](monitor-groups-example-eventbridge-filters.md)에 표시된 것과 같은 필터로 바꿉니다.

2단계: 이벤트를 처리할 수 있는 대상을 EventBridge 규칙에 연결   
이제 원하는 이벤트를 캡처하는 규칙을 만들었으므로 하나 이상의 대상을 연결하여 이벤트에 대해 일종의 프로세싱을 수행할 수 있습니다.  
다음 AWS CLI `[put-targets](https://docs.aws.amazon.com//cli/latest/reference/events/put-targets.html)` 명령은 이전 예제에서 생성한 `my-sns-topic` 규칙에 라는 Amazon Simple Notification Service(Amazon SNS) 주제를 연결합니다. 규칙에 지정된 그룹이 변경되면 주제에 대한 모든 구독자에게 알림이 전송됩니다.  

```
$ aws events put-targets \
    --rule CatchResourceGroupEventsForMyGroup \
    --targets Id=1,Arn=arn:aws:sns:us-east-1:123456789012:my-sns-topic
{
    "FailedEntryCount": 0,
    "FailedEntries": []
}
```
이때 규칙의 이벤트 패턴과 일치하는 모든 그룹 변경 사항이 구성된 대상으로 자동 전송됩니다. 이전 예제에서처럼 대상이 Amazon SNS 주제인 경우, 주제에 대한 모든 구독자는 [Resource Groups 수명 주기 이벤트의 구조 및 구문](monitor-groups-syntax.md)에 설명된 이벤트가 포함된 메시지를 수신합니다.

자세한 정보는 다음 자료를 참조하세요.
+ AWS CLI - [aws 이벤트 put-rule](https://docs.aws.amazon.com//cli/latest/reference/events/put-rule.html) 및 [aws 이벤트 put-targets](https://docs.aws.amazon.com//cli/latest/reference/events/put-targets.html)
+ API – [PutRule](https://docs.aws.amazon.com//eventbridge/latest/APIReference/API_PutRule.html) 및 [PutTargets](https://docs.aws.amazon.com//eventbridge/latest/APIReference/API_PutTargets.html)

------

## 특정 그룹 수명 주기 이벤트 유형만 캡처하는 규칙 생성
<a name="monitor-groups-create-rule-custom"></a>

사용자 지정 이벤트 패턴을 사용하여 원하는 이벤트만 캡처하는 규칙을 만들 수 있습니다. 사용자 지정 이벤트 패턴을 사용하여 수신 이벤트를 필터링하는 방법에 대한 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 이벤트](https://docs.aws.amazon.com//eventbridge/latest/userguide/eventbridge-and-event-patterns.html)를 참조하세요.

예를 들어, 새 리소스 그룹 생성을 나타내는 Resource Groups 알림만 처리하는 규칙을 설정한다고 가정해 보겠습니다. 다음 예와 비슷한 사용자 지정 이벤트 패턴을 사용할 수 있습니다.

```
{
    "source": [ "aws.resource-groups" ],
    "detail-type": [ "ResourceGroups Group State Change" ],
    "detail": {
        "state-change": "create"
    }
}
```

이 필터는 지정된 필드에 정확한 값이 있는 이벤트만 캡처합니다. 매칭할 수 있는 필드의 전체 목록은 [Resource Groups 수명 주기 이벤트의 구조 및 구문](monitor-groups-syntax.md)을 참조하세요.

# 그룹 수명 주기 이벤트 끄기
<a name="monitor-groups-turn-off"></a>

그룹 수명 주기 이벤트를 해제하여 Amazon EventBridge AWS Resource Groups 로 이벤트 전송을 중지할 수 있습니다. 를 사용하거나 AWS Management Console 또는 SDK API 중 AWS CLI 하나의 명령을 사용하여이 작업을 수행할 수 있습니다. APIs 

**참고**  
그룹 수명 주기 이벤트를 끄면 리소스 태그 및 CloudFormation 스택의 변경 사항을 스캔하는 데 사용되는 Resource Groups 관리형 EventBridge 규칙이 삭제됩니다. Resource Groups는 더 이상 이러한 변경 사항을 EventBridge에 전달할 수 없습니다. EventBridge에서 정의한, Resource Groups 이벤트를 찾는 모든 규칙은 처리할 이벤트 수신을 중지합니다. 나중에 그룹 수명 주기 이벤트를 다시 켜려는 경우 규칙을 비활성화할 수 있습니다. 이러한 규칙을 다시 사용하고 싶지 않은 경우 삭제할 수 있습니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [EventBridge 규칙 비활성화 또는 삭제](https://docs.aws.amazon.com//eventbridge/latest/userguide/delete-or-disable-rule.html)를 참조하세요.  
그룹 수명 주기 이벤트를 끄더라도 서비스 연결 역할은 삭제되지 ***않습니다***. 원하는 경우 IAM을 사용하여 [수동으로 서비스 연결 역할을 삭제](security_iam_service-linked-roles.md#delete-service-linked-role)할 수 있습니다. 나중에 그룹 수명 주기 이벤트를 다시 켜야 하는데 서비스 연결 역할이 존재하지 않는 경우, Resource Groups는 해당 역할을 자동으로 다시 생성합니다.

**최소 권한**  
현재에서 그룹 수명 주기 이벤트를 끄려면 다음 권한이 있는 (IAM) 보안 주체로 AWS Identity and Access Management 로그인 AWS 계정해야 합니다.  
`resource-groups:UpdateAccountSettings`
`events:DeleteRule`
`events:RemoveTargets`
`events:DescribeRule`
`events:ListTargetsByRule`

------
#### [ AWS Management Console ]

**EventBridge에 대한 그룹 수명 주기 이벤트 알림을 끄는 방법**

1. Resource Groups 콘솔에서 **[설정](https://console.aws.amazon.com/resource-groups/groups/settings)** 페이지를 엽니다.

1. **그룹 수명 주기 이벤트** 섹션에서 **알림이 켜져 있음** 옆의 스위치를 선택합니다.

1. 확인 대화 상자에서 **알림 끄기**를 선택합니다.

   기능 스위치에 **이벤트 알림이 꺼져 있음**이 표시됩니다.

이 시점에서 Resource Groups는 더 이상 EventBridge 기본 이벤트 버스로 이벤트를 보내지 않으며, 규칙은 더 이상 처리해야 할 그룹 알림 이벤트를 수신하지 않습니다. 선택적으로 이러한 규칙을 삭제하여 정리를 완료할 수 있습니다.

------
#### [ AWS CLI ]

**EventBridge에 대한 그룹 수명 주기 이벤트 알림을 끄는 방법**  
다음 예제에서는를 사용하여 Resource Groups에서 그룹 수명 주기 이벤트를 AWS CLI 끄는 방법을 보여줍니다.

```
$ aws resource-groups update-account-settings \
    ----group-lifecycle-events-desired-status INACTIVE
{
    "AccountSettings": {
        "GroupLifecycleEventsDesiredStatus": "INACTIVE",
        "GroupLifecycleEventsStatus": "INACTIVE"
    }
}
```

------

자세한 정보는 다음 자료를 참조하세요.
+ AWS CLI – [aws resource-groups update-account-settings](https://docs.aws.amazon.com//cli/latest/reference/resource-groups/update-account-settings.html) 및 [aws resource-groups get-account-settings](https://docs.aws.amazon.com//cli/latest/reference/resource-groups/get-account-settings.html)
+ API – [UpdateAccountSettings](https://docs.aws.amazon.com//ARG/latest/APIReference/API_UpdateAccountSettings.html) 및 [GetAccountSettings](https://docs.aws.amazon.com//ARG/latest/APIReference/API_GetAccountSettings.html)

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