View a markdown version of this page

グループライフサイクルイベントをキャプチャして通知を公開するための EventBridge ルールの作成 - AWS Resource Groups

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

グループライフサイクルイベントをキャプチャして通知を公開するための EventBridge ルールの作成

注記

AWS のグループライフサイクルイベント (GLE) 機能は AWS Resource Groups 、新規のお客様に公開されなくなりました。グループライフサイクルイベント (GLE) に似た機能については、推奨される EventBridge ベースの代替案を参照してください。詳細については、「AWS Resource Groups 可用性変更のグループライフサイクルイベント機能」を参照してください。

リソースグループのグループライフサイクルイベントを有効に AWS Resource Groups して、Amazon EventBridge にイベントを発行できます。次に、これらのイベントに応答する EventBridge ルールを作成し、他の に送信して AWS のサービス さらに処理できます。

AWS CLI

イベントをキャプチャして目的のターゲットサービスに送信するルールを EventBridge で作成するプロセスには、2 つの別々の CLI コマンドが必要です。

ステップ 1: イベントをキャプチャする EventBridge ルールを作成する

次の AWS CLI put-ruleコマンド例では、すべての 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 ユーザーガイド」の「文字列内での引用符の使用」を参照してください。

パラメータ文字列が複雑になるにつれて、コマンドラインに直接入力するよりもテキストファイルからパラメータ値を受け入れる方が簡単になり、エラーが発生しにくくなります。

次のイベントパターンは、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 カスタムイベントパターンの例 に示されているようなフィルターに置き換えます。

ステップ 2: イベントを処理できるターゲットを EventBridge ルールにアタッチする

関心のあるイベントをキャプチャするルールができたので、1 つ以上のターゲットをアタッチしてイベントに対して何らかの処理を行うことができます。

次の AWS CLI put-targetsコマンドは、前の例で作成したルール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 ライフサイクルイベントの構造と構文 で説明されているように、イベントを含むメッセージを受信します。

詳細については、以下のリソースを参照してください。

特定のグループライフサイクルイベントタイプのみをキャプチャするルールの作成

関心のあるイベントのみをキャプチャするカスタムイベントパターンを使用してルールを作成できます。カスタムイベントパターンを使用して受信イベントをフィルタリングする方法の詳細については、「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge イベント」を参照してください。

たとえば、新しいリソースグループの作成を示す Resource Groups 通知のみを処理するルールが必要だとします。以下の例のようなカスタムイベントパターンを使用します。

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

このフィルターは、指定されたフィールドにその値とまったく同じ値を持つイベントのみをキャプチャします。一致する使用可能なフィールドの完全なリストについては、「Resource Groups ライフサイクルイベントの構造と構文」を参照してください。