CodePipelineの完了通知

CodePipelineによるデプロイは、基本的には手動で行っています
ただ開発中は検証環境へのデプロイについては頻度も多く、影響も少ないため、自動デプロイで運用しております
CodeCommitやGitHubで特定ブランチの修正マージをEventBridgeで検知し、CodePipelineで自動デプロイされるようにしております

業務のイメージとしては開発者からベースブランチへのプルリクを受け、レビュー&マージを行うことで、CodePipelineが自動実行されます
デプロイ完了後に、動作確認のため検証チームや開発者に周知を行います
CodePipelineの起動作業が自動化されているので楽ではあるのですが、デプロイがいつ完了したのかわからないため、結局AWS Consoleを開いてCodePipelineの進捗状況を確認していたりします
この部分の改善としてCodePipelineの完了通知を行うようにしてみました

設定概要

設定概要は以下の通りです

  1. SMSで通知トピックを準備する
  2. EventBridgeでCodePipelineの完了を検知する
  3. 動作確認を行う

1. SMSの設定

SNSのトピックで通知先を設定します

  1. Amazon SNSトピックを開く
  2. トピックの作成を押下
  3. トピックの作成を定義
    • タイプ:スタンダードを選択
    • トピックの作成を押下
  4. 作成したトピックのサブスクリプションタブを選択し、サブスクリプションの作成を押下
  5. サブスクリプションを定義
    • プロトコル:Eメールを選択
    • エンドポイント:通知を受信するメールアドレスを入力
  6. リクエストの確認
    • サブスクリプションを作成すると、確認用のメールが届くのでConfirm subscriptionをクリック
  7. Amazon SNSサブスクリプションを開く
    • 作成したサブスクリプションのステータスが確認済みになっていることを確認

2. EventBridgeの設定

EventBridgeのルールで、CodePipelineの完了を検知するルールを追加します

  1. Amazon EventBridgeルールを開く
  2. ルールを作成を押下
  3. ルールの詳細を定義
    • ルールタイプ:イベントパターンを持つルールを選択
  4. イベントパターンを構築
    • イベント:その他を選択
    • イベントパターン:カスタムパターン (JSON エディタ)を選択
    • JSONによる記述
      • {
            "source": ["aws.codepipeline"],
            "detail-type": ["CodePipeline Pipeline Execution State Change"],
            "detail": {
                "state": ["SUCCEEDED", "FAILED", "CANCELED"],
                "pipeline": ["myproject-development"]
            }
        }
  5. ターゲットを選択
    • ターゲットタイプ:AWSのサービスを選択
    • ターゲットを選択:SNSトピックを選択
    • ターゲットの場所:このアカウントのターゲットを選択、SNSで作成したトピックを選択
  6. 確認と更新
    • ルールの作成を押下

3. 動作確認

設定したCodePipelineのプロジェクトが自動起動するようベースブランチを修正し、CodePipelineが完了後に通知が届くかを確認します

上部へスクロール