Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

CodeBuild のビルド通知サンプル

フォーカスモード

このページの内容

CodeBuild のビルド通知サンプル - AWS CodeBuild

Amazon CloudWatch Events には AWS CodeBuild のサポートが組み込まれています。CloudWatch Events は、AWS リソースの変更を説明するシステムイベントのストリームです。CloudWatch Events では、宣言型のルールを書き込んで、目的のイベントを自動アクションに関連付けます。このサンプルでは、Amazon CloudWatch Events と Amazon Simple Notification Service (Amazon SNS) を使用して、ビルドの成功、失敗、各ビルドフェーズへの移行、またはこれらのイベントの組み合わせを行うたびに、ビルド通知をサブスクライバーに送信します。

重要

このサンプルを実行すると、AWS アカウントに課金される場合があります。これには、CodeBuild と、Amazon CloudWatch および Amazon SNS に関連する AWS リソースおよびアクションに対する料金が含まれます。詳細については、「CodeBuild 料金表」、「Amazon CloudWatch 料金表」および「Amazon SNS 料金表」を参照してください。

ビルド通知サンプルを実行

ビルド通知サンプルを実行するには、次の手順に従います。

このサンプルを実行するには
  1. このサンプルで使用するトピックをすでに設定して Amazon SNS で購読している場合は、ステップ 4 に進みます。それ以外の場合は、AWS ルートアカウントまたは管理者ユーザーの代わりに IAM ユーザーを使用して Amazon SNS を操作するには、ユーザー (またはユーザーが関連付けられている IAM グループ) に次のステートメントを (### BEGIN ADDING STATEMENT HERE ###### END ADDING STATEMENT HERE ### の間に) 追加します。AWS ルートアカウントは使用しないでください。このステートメントにより、Amazon SNS のトピックへの通知の表示、作成、サブスクライブ、および送信テストができます。省略記号 (...) は、簡潔にするために使用され、ステートメントを追加する場所の特定に役立ちます。ステートメントを削除しないでください、また、これらの省略記号を既存のポリシーに入力しないでください。

    { "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Action": [ "sns:CreateTopic", "sns:GetTopicAttributes", "sns:List*", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe" ], "Resource": "*", "Effect": "Allow" }, ### END ADDING STATEMENT HERE ### ... ], "Version": "2012-10-17" }
    注記

    このポリシーを変更する IAM エンティティは、ポリシーを変更するために IAM のアクセス許可を持っている必要があります。

    詳細については、「カスタマー管理ポリシーの編集」または、「IAM ユーザーガイド」の「インラインポリシーの使用 (コンソール)」の「グループ、ユーザー、ロールのインラインポリシーを編集または削除するには」セクションを参照してください。

  2. Amazon SNS でトピックを作成または識別します。AWS CodeBuild は、CloudWatch Events を使用して、Amazon SNS を介してこのトピックにビルド通知を送信します。

    トピックを作成するには:

    1. Amazon SNS コンソール(https://console.aws.amazon.com/sns)を開きます。

    2. [トピックの作成] を選択します。

    3. [新しいトピックの作成] で、[トピック名] にトピックの名前 (CodeBuildDemoTopic など) を入力します。(別の名前を選択する場合は、このサンプル全体でそれを置き換えてください。)

    4. [トピックの作成] を選択します。

    5. [トピックの詳細: CodeBuildDemoTopic] ページで、[トピック ARN] の値をコピーします。この値は次のステップで必要になります。

      トピック ARN 値。

    詳細については、Amazon SNS デベロッパーガイドの「トピックの作成」を参照してください。

  3. 1 つかそれ以上の受信者にトピックをサブスクライブさせ、E メール通知を受け取ります。

    受信者にトピックをサブスクライブさせるには:

    1. 前のステップで Amazon SNS コンソールを開いた状態のまま、ナビゲーションペインで、[Subscriptions] (サブスクリプション) を選択してから、[Create subscription] (サブスクリプションの作成) を選択します。

    2. [サブスクリプションの作成] の [トピック ARN] に、前のステップからコピーしたトピック ARN を貼り付けます。

    3. [Protocol] で [Email] を選択します。

    4. [エンドポイント] に、受信者の完全な E メールアドレスを入力します。

      サブスクリプション設定。

    5. [Create Subscription] を選択します。

    6. Amazon SNS は受信者にサブスクリプション確認の E メールを送信します。E メール通知の受信を開始するには、受信者は受信登録確認メールで [Confirm subscription] リンクを選択する必要があります。受信者がリンクをクリックした後、正常にサブスクライブされたら、Amazon SNS により受信者のウェブブラウザに確認メッセージが表示されます。

    詳細については、Amazon SNS 開発者ガイドの「トピックのサブスクライブ」を参照してください。

  4. AWS ルートアカウントまたは管理者ユーザーの代わりにユーザーを使用して CloudWatch Events を操作する場合は、ユーザー (またはユーザーが関連付けられている IAM グループ) に次のステートメントを (### BEGIN ADDING STATEMENT HERE ###### END ADDING STATEMENT HERE ### の間に) 追加します。AWS ルートアカウントは使用しないでください。このステートメントは、CloudWatch Events の使用をユーザーに許可するために使用します。省略記号 (...) は、簡潔にするために使用され、ステートメントを追加する場所の特定に役立ちます。ステートメントを削除しないでください、また、これらの省略記号を既存のポリシーに入力しないでください。

    { "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Action": [ "events:*", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" }, ### END ADDING STATEMENT HERE ### ... ], "Version": "2012-10-17" }
    注記

    このポリシーを変更する IAM エンティティは、ポリシーを変更するために IAM のアクセス許可を持っている必要があります。

    詳細については、「カスタマー管理ポリシーの編集」または、「IAM ユーザーガイド」の「インラインポリシーの使用 (コンソール)」の「グループ、ユーザー、ロールのインラインポリシーを編集または削除するには」セクションを参照してください。

  5. CloudWatch Events ルールを作成します。これを行うために、CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  6. ナビゲーションペインの [Events] で、[Rules] を選択してから、[Create rule] を選択します。

  7. [ステップ 1: ルールの作成] ページで、[イベントパターン] と [サービス別のイベントに一致するイベントパターンの構築] が選択済みであることを確認します。

  8. [サービス名] で、[CodeBuild] を選択します。[イベントタイプ] で、[すべてのイベント] が選択済みであることを確認します。

  9. [イベントパターンのプレビュー] には、次のコードが表示されます。

    { "source": [ "aws.codebuild" ] }
  10. [編集] を選択し、[イベントパターンのプレビュー] のコードを、次の 2 つのルールパターンのいずれかに置き換えます。

    この最初のルールパターンは、AWS CodeBuild で指定されたビルドプロジェクトのビルドが開始または完了すると、イベントをトリガーします。

    { "source": [ "aws.codebuild" ], "detail-type": [ "CodeBuild Build State Change" ], "detail": { "build-status": [ "IN_PROGRESS", "SUCCEEDED", "FAILED", "STOPPED" ], "project-name": [ "my-demo-project-1", "my-demo-project-2" ] } }

    前述のルールで、必要に応じて次のコードを変更します。

    • ビルドが開始または完了したときにイベントをトリガーするには、build-status 配列に表示されているすべての値をそのままにするか、build-status 配列を完全に削除します。

    • ビルドが完了したときにのみイベントをトリガーするには、IN_PROGRESS 配列から build-status を削除します。

    • ビルドの開始時にのみイベントをトリガーするには、IN_PROGRESS 配列から build-status を除くすべての値を削除します。

    • すべてのビルドプロジェクトのイベントをトリガーするには、project-name 配列を完全に削除します。

    • 個々のビルドプロジェクトのイベントのみをトリガーするには、project-name 配列に各ビルドプロジェクトの名前を指定します。

    この 2 番目のルールパターンでは、AWS CodeBuild で指定されたビルドプロジェクトのビルドフェーズが別のビルドフェーズに移動するたびに、イベントをトリガーします。

    { "source": [ "aws.codebuild" ], "detail-type": [ "CodeBuild Build Phase Change" ], "detail": { "completed-phase": [ "SUBMITTED", "PROVISIONING", "DOWNLOAD_SOURCE", "INSTALL", "PRE_BUILD", "BUILD", "POST_BUILD", "UPLOAD_ARTIFACTS", "FINALIZING" ], "completed-phase-status": [ "TIMED_OUT", "STOPPED", "FAILED", "SUCCEEDED", "FAULT", "CLIENT_ERROR" ], "project-name": [ "my-demo-project-1", "my-demo-project-2" ] } }

    前述のルールで、必要に応じて次のコードを変更します。

    • ビルドフェーズの変更 (各ビルドで送信される通知は最大 9 個) ごとにイベントをトリガーするには、completed-phase 配列に表示されているすべての値をそのままにするか、completed-phase 配列を完全に削除します。

    • 個々のビルドフェーズの変更に対してのみイベントをトリガーするには、イベントをトリガーしない completed-phase 配列の各ビルドフェーズの名前を削除します。

    • 各ビルドフェーズステータスが変更するたびにイベントをトリガーするには、completed-phase-status 配列に示すように、すべて値をそのままにするか、completed-phase-status 配列を完全に削除します。

    • 個々のビルドフェーズステータスの変更に対してのみイベントをトリガーするには、イベントをトリガーしない completed-phase-status 配列の各ビルドフェーズステータスの名前を削除します。

    • すべてのビルドプロジェクトのイベントをトリガーするには、project-name 配列を削除します。

    • 個々のビルドプロジェクトのイベントをトリガーするには、project-name 配列に各ビルドプロジェクトの名前を指定します。

    イベントパターンの詳細については、Amazon EventBridge ユーザーガイドの「イベントパターン」を参照してください。

    イベントパターンを用いたフィルタリングの詳細については、Amazon EventBridge ユーザーガイドの「イベントパターンを使用したコンテンツベースのフィルタリング」を参照してください。

    注記

    ビルド状態の変更とビルドフェーズの変更の両方に応じてイベントをトリガーする場合は、ビルド状態の変更用とビルドフェーズの変更用に 2 つの別個のルールを作成する必要があります。両方のルールを 1 つのルールに結合すると、結合したルールは予期しない結果を引き起こすか、まったく動作しなくなる可能性があります。

    コードの置換を完了したら、[Save] を選択します。

  11. [Targets] で、[Add target] を選択します。

  12. ターゲットのリストで、[SNS トピック] を選択します。

  13. [Topic] で、以前に指定した、または作成したトピックを選択します。

  14. [入力の設定] を展開して、[インプットトランスフォーマー] を閉じます。

  15. [Input Path] ボックスに、次のいずれかの入力パスを入力します。

    detail-type の値が CodeBuild Build State Change であるルールの場合は、次のように入力します。

    {"build-id":"$.detail.build-id","project-name":"$.detail.project-name","build-status":"$.detail.build-status"}

    detail-type の値が CodeBuild Build Phase Change であるルールの場合は、次のように入力します。

    {"build-id":"$.detail.build-id","project-name":"$.detail.project-name","completed-phase":"$.detail.completed-phase","completed-phase-status":"$.detail.completed-phase-status"}

    他のタイプの情報を取得するには、「ビルド通知の入力形式に関するリファレンス」を参照してください。

  16. [入力テンプレート] ボックスに、次のいずれかの入力テンプレートを入力します。

    detail-type の値が CodeBuild Build State Change であるルールの場合は、次のように入力します。

    "Build '<build-id>' for build project '<project-name>' has reached the build status of '<build-status>'."

    detail-type の値が CodeBuild Build Phase Change であるルールの場合は、次のように入力します。

    "Build '<build-id>' for build project '<project-name>' has completed the build phase of '<completed-phase>' with a status of '<completed-phase-status>'."
  17. [設定の詳細] を選択します。

  18. [ステップ 2: ルールの詳細を設定する] ページで、名前と説明 (オプション) を入力します。[状態] は、[有効] のままとします。

  19. [Create rule] を選択します。

  20. ビルドプロジェクトを作成して、ビルドを実行し、ビルド情報を表示します。

  21. CodeBuild がビルド通知を現在正常に送信していることを確認します。たとえば、ビルド通知 E メールが受信トレイにあるかどうかを確認します。

ルールの動作を変更するには、CloudWatch コンソールで変更するルールを選択し、[アクション]、[編集] の順に選択します。ルールを編集し、[設定の詳細]、[ルールの更新] の順に選択します。

ルールを使用したビルド通知の送信を停止するには、CloudWatch コンソールで、使用を停止するルールを選択し、[アクション]、[無効化] の順に選択します。

ルールを完全に削除するには、CloudWatch コンソールで、削除するルールを選択し、[アクション]、[削除] の順に選択します。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.