AWS CodePipelineのエラーを検知し、Backlog自動起票する手順

AWS

2023.12.20

Topics

はじめに

みなさんこんにちは、フクナガです。今回の記事では、AWS CodePipelineで構築されたCI/CDパイプラインの失敗を検知し、Backlogで自動起票する方法をご説明いたします。

想定されるユースケース

Backlogなどのチケット管理ツールで案件の保守や運用をする場合、何か対応が必要な事象や課題が発生した場合にチケットを起票すると思います。
自動CI/CD(Continuous Integration/Continuous Delivery)によるデプロイが失敗した場合、何かしらの方法で気づく必要があります。アプリケーションとインフラの保守担当者が違う場合やソースコード管理をGitでデプロイをCodePipelineで実施している場合など、能動的に気づくのが難しい状況もあるかと思います。チケットを自動で起票することで関係者に周知でき、さらに解決までの道筋を履歴としてチケットに残せるため、今回のような設定は有効ではないかなと考えています。

設定手順

(1) Backlogで通知設定をする

  1. 起票する対象のプロジェクトへアクセスする

  2. [プロジェクト設定] > [インテグレーション] > [メールによる課題登録] > [設定]を押下

  3. [課題登録用メールアドレスの追加]を押下

  4. 必須項目を記載し、[登録]を押下
    課題の件名としてメールの件名なども使えます。

  5. 課題起票用のメールアドレスが作成されたことを確認する

(2) CodePipelineで通知設定をする

  1. 通知対象のCodePipelineを選択する

  2. 画面上部の[通知] > [通知ルールの作成]を押下

  3. 通知名や通知を発報したいタイミング(トリガーするイベント)などを入力/選択し、[ターゲットの作成]を押下
    今回は、パイプライン全体の失敗のみ通知するため「Pipeline execution」の「Failed」のみ有効化しています。

  4. ターゲットタイプ、トピック名を入力し、[作成]を押下

  5. ターゲットの選択に作成されたターゲットのARNが入力されていることを確認し、[submit]を押下する

  6. 通知ルールが作成されたことを確認する

(3) SNSでBacklog通知用のメールアドレスを指定する

  1. Amazon SNSのマネジメントコンソールから手順(2)で作成されたSNSトピックを選択し、[サブスクリプションの作成]を押下

  2. プロトコルを「Eメール」、エンドポイントにBacklogで発行したEメールアドレスを入力し、[サブスクリプションの作成]を押下

  3. ConfirmメールがBacklog上で起票されるため、Confirm用のリンクを押下し、サブスクリプションの登録が完了

(4) 稼働確認

意図的にCodePipelineのジョブを失敗させて、実際に通知が飛ぶか確かめてみます。
今回は、CI/CDの中にCodeBuildが含まれているので、意図的にエラーが出るコードをbuildspec内に仕込みました。
実行後、CodePipelineのジョブが失敗することを確認しました。

CodePipelineのジョブが失敗した後、Backlog側でチケットが起票されていることを確認できました。

まとめ

今回の記事では、AWS CodePipelineで構築されたCI/CDパイプラインの失敗を検知し、Backlogで自動起票する方法をご説明しました。様々なチケット起票ルールがあると思いますので、今回の記事を参考に皆さんの環境や案件にあった実装にアレンジいただけたらと思います。

フクナガ

インフラエンジニア歴5年のフクナガです。AWS(特にBedrockとCodePipeline)が得意分野。休日はベースを弾いてます。技術力と発信力を高め、Top Engineerを目指しています。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら