翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Image Builder パイプラインで EventBridge を使用する
AWS および パートナーサービスは、イベントをほぼリアルタイムで Amazon EventBridge イベントバスにストリーミングします。独自のカスタムイベントを送信することもできます。イベントバスはルールを使用して、各イベントを 1 つ以上のターゲットにルーティングします。
Image Builder は、2 つの独立した方向で EventBridge と連携します。
-
ルールからパイプラインビルドを開始します。Image Builder パイプラインをルールターゲットとして設定して、イベントがルールに一致するとき、またはスケジュールが発生したときに EventBridge がパイプラインを実行するようにできます。「スケジュールに基づいてパイプラインビルドをトリガーする」および「イベントパターンからパイプラインビルドをトリガーする」を参照してください。
-
Image Builder が送信するイベントに反応します。Image Builder は、イメージが になったとき
AVAILABLEやスキャンが CVEs。これらのイベントをルールと照合し、Lambda 関数や Amazon SNS トピックなどのターゲットにルーティングして、独自のオートメーションを開始できます。「Image Builder が送信するイベントへの対応」を参照してください。
Image Builder が送信するイベントと各イベントのフィールドの詳細については、「」を参照してくださいImage Builder が送信するイベントメッセージ。
注記
イベントバスはリージョン固有です。ルールと呼び出すリソースは通常、同じリージョンにあります。リージョン間でルーティングするには、送信先リージョンのイベントバスをターゲットにします。Image Builder は、ビルドが実行されるリージョンのデフォルトのイベントバスにイベントを発行します。
内容
イベントブリッジの用語
以下の用語は、EventBridge が Image Builder パイプラインとどのように統合されるかを理解するのに役立ちます。
- イベント
-
1 つまたは複数のアプリケーションリソースに影響を与える可能性のある環境の変更について記述します。環境は、 AWS 環境、SaaS パートナーサービスまたはアプリケーション、またはアプリケーションまたはサービスのいずれかです。タイムラインに予定されたイベントをセットアップすることもできます。
- イベントバス
-
アプリケーションやサービスからイベントデータを受け取るパイプライン。
- ソース
-
イベントをイベントバスに送信したサービスまたはアプリケーション。
- ターゲット
-
EventBridge がルールに一致したときに呼び出し、イベントからターゲットにデータを配信するリソースまたはエンドポイント。
- ルール
-
ルールは、受信したイベントをマッチングし、処理のためにターゲットに送信します。1 つのルールで複数のターゲットにイベントを送信し、それを並行して実行することができます。ルールは、イベントパターンまたはスケジュールに基づいて作成します。
- パターン
-
イベントパターンは、ターゲットアクションを開始するために、ルールがマッチするイベント構造とフィールドを定義します。
- スケジュール
-
スケジュールルールは、Image Builder パイプラインを実行して四半期ごとにイメージを更新するなど、スケジュールに基づいてアクションを実行します。スケジュール表現には次の 2 種類があります。
-
Cron 式 — 例えば、特定の日に毎週実行するなど、単純な基準を概説できる cron 構文を使用して、特定のスケジューリング条件を照合します。また、月の 5 日目の午前 2 時から午前 4 時の間に四半期ごとに実行するなど、より複雑な条件を設定することもできます。
-
レート表現 — 12 時間ごとなど、ターゲットを定期的に呼び出す間隔を指定します。
-
Image Builder パイプラインのEventBridge ルールを表示する
Image Builder の イメージパイプライン 詳細ページの EventBridge ルール タブには、アカウントがアクセスできる EventBridge イベントバスと、現在のパイプラインに適用される選択したイベントバスのルールが表示されます。このタブは、新しいリソースを作成するためのEventBridge コンソールにも直接リンクしています。
EventBridge コンソールにリンクするアクション
-
イベントバスを作成
-
ルールの作成
EventBridge の詳細については、Amazon EventBridge ユーザーガイドの以下のトピックを参照してください。
スケジュールに基づいてパイプラインビルドをトリガーする
Image Builder パイプラインを EventBridge スケジュールルールのターゲットとして設定し、定期的にイメージを更新します。次の例では、90 日ごとにパイプラインビルドを開始するルールを作成します。
注記
パイプラインは、独自の組み込みスケジュール (パイプラインに保存されている cron 式または rate 式) を実行することもできます。このスケジュールは Image Builder によって管理され、EventBridge ルールとは別のものです。
-
パイプラインスケジュールを使用して、簡単な定期的な再構築を行います。また、依存関係の更新に基づいてビルドをゲートし、失敗したパイプラインを自動的に無効にすることもできます。EC2 Image Builder API リファレンス
Scheduleの「」を参照してください。 -
EventBridge ルールを使用して、イベントパターンからビルドを開始するか、1 つのトリガーを複数のターゲットにファンアウトします。
注記
この例で説明されていない rate 式ルールの設定について詳しくは、Amazon EventBridge User Guide のレート表現を参照してください。
イベントパターンからパイプラインビルドをトリガーする
スケジュールの代わりに、イベントがパターンに一致するときにパイプラインビルドを開始できます。イベントパターンを使用してルールを作成し、パイプラインをターゲットとして追加します (「」で説明されているのと同じ IAM ロールを使用スケジュールに基づいてパイプラインビルドをトリガーする)。
次の の例では、特定のベースイメージが になるたびにビルドを開始しますAVAILABLE。たとえば、ベースイメージが終了した後に依存イメージビルドを連鎖させます。resources プレフィックスは、依存パイプラインの独自の出力ではなく、そのイメージのみと一致するように、ルールをベースイメージにスコープします。
{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder Image State Change"], "detail": { "state": { "status": ["AVAILABLE"] } }, "resources": [{ "prefix": "arn:aws:imagebuilder:us-west-2:111122223333:image/my-base-image/" }] }
重要
この例のresourcesプレフィックスに示すように、イベントパターンをベースイメージにスコープします。アカウント内のすべてのAVAILABLEイメージに一致するパターンは、依存パイプラインの独自の出力イメージとも一致します。これにより、パイプラインが再び開始され、無限のビルドループを作成できます。特定のベースイメージ名または ARN プレフィックスをフィルタリングして、ルールが意図したイメージのみと一致するようにします。
一致できるイベントとそのフィールドについては、「」を参照してくださいImage Builder が送信するイベントメッセージ。
Image Builder が送信するイベントへの対応
Image Builder は、イメージの状態が変わったとき、スキャンが完了したとき、ワークフローステップが入力のために一時停止したとき、パイプラインが自動的に無効になったときなど、リソースが重要なポイントに達すると、デフォルトのイベントバスにイベントを発行します。これらのイベントをルールと照合し、ターゲットにルーティングして独自のオートメーションを開始できます。一般的なパターンは次のとおりです。
-
イメージが
AVAILABLEまたは になったら、Amazon SNS トピックを通じてチームに通知しますFAILED。 -
Lambda 関数を呼び出して、パラメータストアに新しい AMI を登録したり、外部コンプライアンステストを開始したり、デプロイパイプラインを更新したりできます。
-
スキャンが重要な CVEs。
-
ワークフローステップがビルドを一時停止するときに、承認
WaitForActionワークフローを推進します。
Image Builder が送信するイベントを処理するには、イベントパターンがイベント source (aws.imagebuilder) と に一致しdetail-type、オプションで 内のフィールドを絞り込むルールを作成しますdetail。次に、オートメーションを実行するターゲットを追加します。
例: イメージの完了時に通知する (AVAILABLE または FAILED)
{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder Image State Change"], "detail": { "state": { "status": ["AVAILABLE", "FAILED"] } } }
例: スキャンで重要な CVEs
クリーンスキャンがルールをトリガーしないように、数値マッチャーを使用します。
{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder CVE Detected"], "detail": { "finding-severity-counts": { "critical": [{ "numeric": [">", 0] }] } } }
注記
EC2 Image Builder Workflow Step Waiting イベントに一致させると、ターゲットはイベントworkflow-step-execution-idからの と、 RESUME または action の SendWorkflowStepActionを呼び出すことができますSTOP。「WaitForAction」を参照してください。