

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# グループライフサイクルイベント: リソースグループの変更のモニタリング
<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 アカウント、次のアクセス許可を持つ AWS Identity and Access Management (IAM) プリンシパルとしてサインインする必要があります。  
`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 マネジメントコンソール または SDK APIs のいずれかの AWS CLI コマンドを使用します。

**注記**  
リソースグループのクォータが高すぎる場合、グループライフサイクルイベントを有効にすることはできません。詳細については、[「サービスクォータの表示](https://docs.aws.amazon.com/servicequotas/latest/userguide/gs-request-quota)」を参照してください。

------
#### [ AWS マネジメントコンソール ]

**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 にイベントを発行できます。次に、これらのイベントに応答する EventBridge ルールを作成し、他の に送信して AWS のサービス さらに処理できます。

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

イベントをキャプチャして目的のターゲットサービスに送信するルールを EventBridge で作成するプロセスには、2 つの別々の 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 文字列で、1 行の適切にエスケープされた 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 ルールにアタッチする   
関心のあるイベントをキャプチャするルールができたので、1 つ以上のターゲットをアタッチしてイベントに対して何らかの処理を行うことができます。  
次の 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": []
}
```
この時点で、ルール内のイベントパターンと一致するグループの変更は、設定された 1 つまたは複数のターゲットに自動的に送信されます。前の例のように、ターゲットが Amazon SNS トピックの場合、トピックのすべてのサブスクライバーは、[Resource Groups ライフサイクルイベントの構造と構文](monitor-groups-syntax.md) で説明されているように、イベントを含むメッセージを受信します。

詳細については、以下のリソースを参照してください。
+ AWS CLI – [aws events put-rule](https://docs.aws.amazon.com//cli/latest/reference/events/put-rule.html) および [aws events 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 マネジメントコンソール のコマンド AWS CLI または SDK 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 によって自動的に再作成されます。

**最小アクセス許可**  
現在の でグループライフサイクルイベントを無効にするには AWS アカウント、次のアクセス許可を持つ (IAM) AWS Identity and Access Management プリンシパルとしてサインインする必要があります。  
`resource-groups:UpdateAccountSettings`
`events:DeleteRule`
`events:RemoveTargets`
`events:DescribeRule`
`events:ListTargetsByRule`

------
#### [ AWS マネジメントコンソール ]

**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)

のライフサイクルイベントは AWS Resource Groups 、次の一般的な形式の [JSON](https://json.org) オブジェクト文字列の形式をとります。

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

すべての Amazon EventBridge イベントに共通するフィールドの詳細については、「Amazon EventBridge ユーザーガイド」の「[Amazon EventBridge イベント](https://docs.aws.amazon.com//eventbridge/latest/userguide/aws-events.html)」を参照してください。Resource Groups 固有の詳細を以下の表で説明します。


| フィールド名 | タイプ | 説明 | 
| --- | --- | --- | 
| detail-type | 文字列 |  Resource Groups の場合、`detail-type` フィールドは常に以下のいずれかの値です。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/ARG/latest/userguide/monitor-groups-syntax.html)  | 
| source | String | 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` フィールドの値に基づいて、グループ状態の変更とメンバーシップの変更の 2 つの形式のいずれかになります。

**重要**  
これらのイベントのリソースグループは、グループの ARN と [UUID](https://wikipedia.org/wiki/Universally_unique_identifier) を含む `"unique-id"` フィールドの組み合わせによって識別されます。リソースグループの 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` セクションに含まれる情報には、次の表で説明するフィールドが含まれます。


| フィールド名 | タイプ | 説明 | 
| --- | --- | --- | 
| event-sequence | Double | 特定のグループのイベントの順序を指定する、単調に増加する数値。この数値は、グループを削除して同じ名前で別のグループを作成するとリセットされます。 | 
| group | [[`Group`](#monitor-groups-syntax-detail-group-object) JSON オブジェクト] | ARN、名前、および固有 ID によってイベントに関連付けられているグループオブジェクト。 | 
| state-change | String | 発生した状態変更のタイプ。値は以下のいずれかです。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/ARG/latest/userguide/monitor-groups-syntax-detail.html) | 
| old-state  | [GroupState JSON オブジェクト] | 変更前のグループの状態。オブジェクトには変更されたプロパティの値のみが含まれます。 | 
|  `new-state`  | [GroupState JSON オブジェクト] | 変更後のグループの状態。オブジェクトには変更されたプロパティの値のみが含まれます。 | 

`group` JSON オブジェクトには、次の表に示す要素が含まれます。


| フィールド名 | タイプ | 説明 | 
| --- | --- | --- | 
| arn | 文字列 | グループの ARN。 | 
| name | String | グループのわかりやすい名前。 | 
| unique-id | GUID | 削除されたグループと、後で同じ名前と ARN で作成された別のグループを区別する固有の GUID 値。コード内でこれらのイベントを使用する際には、ARN とこの値を連結してグループの固有キーとして使用してください。 | 

`GroupState`JSON オブジェクトには、次の表に示す要素が含まれます。


| フィールド名 | タイプ | 説明 | 
| --- | --- | --- | 
| description | 文字列 | お客様から提供されたリソースグループの説明。 | 
| resource-query | [ResourceQuery JSON オブジェクト] | グループのメンバーを定義するクエリの JSON 形式。このフィールドは、クエリに基づくグループにのみ表示されます。このフィールドの構文は、[ResourceQuery API のデータタイプ](https://docs.aws.amazon.com//organizations/latest/APIReference/API_ResourceQuery.html)によって定義されます。この例は、[作成](#monitor-groups-syntax-detail-state-change-create)イベントと[更新](#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"` 

このイベントは、新しいグループが作成されたことを示しています。このイベントには、グループの作成時に設定されたすべてのグループメタデータプロパティが含まれます。通常、このイベントの後には、グループが空でない限り、1 つ以上のグループメンバーシップイベントが続きます。値が 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"`

このイベントは、既存のグループが何らかの方法で変更されたことを示しています。このイベントには、前の状態から変更されたプロパティのみが含まれます。変更されていないプロパティはイベント本文には表示されません。

次のイベント例は、前の例のリソースグループのタグベースのクエリが変更され、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\"}]
                }"
            }
        }
    }
}
```

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

`"state-change": "delete"`

このイベントは、既存のグループが削除されたことを示しています。詳細フィールドには、グループに関する識別情報以外のメタデータは含まれません。この `event-sequence` フィールドは、定義上、この `arn` および `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"
        }
    }
}
```

## グループメンバーシップの変更
<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` セクションに含まれる情報には、次の表で説明するフィールドが含まれます。


| フィールド名 | タイプ | 説明 | 
| --- | --- | --- | 
| event-sequence | Double | 単調に増加する数値で、特定のグループのイベントの順序を示します。グループが削除され、固有 ID が変更されると、数値はリセットされます。 | 
| group | [Group JSON オブジェクト] | イベントに関連付けられているグループオブジェクトを ARN、名前、および固有 ID で識別します。 | 
|  `resources`  | ResourceChange JSON オブジェクトの配列 |  グループメンバーシップが変更されたリソースの配列。 この `ResourceChange` オブジェクトには、リソースごとの以下のフィールドが含まれています。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/ARG/latest/userguide/monitor-groups-syntax-detail.html)  | 

次のコード例は、一般的なメンバーシップ変更タイプのイベントの内容を示しています。この例では、1 つのリソースをグループに追加し、1 つのリソースをグループから削除しています。

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