0Pricing
DevOps Bootcamp · レッスン

通知とアラートの設定

さまざまな通信チャネルを使用して、パイプラインの失敗、成功、重要なイベントに対する自動通知とアラートを設定します。

「通知とアラートの設定」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

パイプライン通知が必要な理由

開発のスピードが速い環境では、CI/CDパイプラインの状態を把握することが重要です。自動通知によって、チームは重要なイベントを常に把握できます。

このレッスンでは、GitHub Actionsを使用して、成功、失敗、その他の重要なパイプラインの節目に対するアラートを設定する方法を学びます。

GitHubの組み込み通知

GitHubには、基本的な通知機能が標準で用意されています。リポジトリを「watching」に設定している場合、ワークフローの実行についてメールまたはWeb通知を受け取れます。

  • 成功: ワークフローが完了しました。
  • 失敗: ワークフローが失敗しました。
  • 中立: ワークフローがキャンセルされました。

ただし、これらは個人向けであることが多く、効果的なCI/CDに必要なリアルタイムかつチーム全体でのコミュニケーションには不十分です。

よく使われる通知チャネル

このギャップを埋めるため、GitHub Actionsはさまざまな外部サービスと連携できます。チームへのアラート通知でよく使われるチャネルには、次のようなものがあります。

  • Slack: 人気の高いチームコミュニケーションプラットフォームです。
  • Microsoft Teams: こちらも広く使われているコラボレーションツールです。
  • メール: より正式な通知や緊急性の低いアラートに適しています。
  • カスタムWebhook: ほぼあらゆるサービスとの連携に使用できます。

これらを利用すると、リアルタイムの更新情報を一元管理できます。

ActionsとSlackの連携

Slackと連携すると、パイプラインの更新情報をすぐに受け取れます。GitHub Marketplace Actionを使用するか、Slack webhookに直接データを送信できます。

Marketplace Actionsを使うと、HTTPリクエストの処理が抽象化されるため、連携の手順が簡単になります。

シンプルなSlack通知ワークフロー

これは、mainブランチへのプッシュごとにSlack通知を送信する基本的なワークフローです。webhook URLにGitHub Secretを使用している点に注目してください。

name: Notify on Push

on: 
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Send Slack Notification
        uses: rtCamp/action-slack-notify@v2
        env:
          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
          SLACK_MESSAGE: "New push to main branch!"
          SLACK_COLOR: "good"

条件付き通知(失敗時)

多くの場合、問題が発生したときだけ通知を受け取りたいものです。GitHub Actionsでは、if:式を使用してステップに条件を追加できます。

failure()式は、ジョブ内の以前のステップのいずれかが失敗したかどうかを確認します。これにより、コミュニケーションチャネルに不要な通知が増えるのを防げます。

name: Notify on Failure

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: This step will fail
        run: exit 1 # Simulate a failure

      - name: Send Failure Notification to Slack
        if: failure()
        uses: rtCamp/action-slack-notify@v2
        env:
          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
          SLACK_MESSAGE: "Workflow failed on ${{ github.ref }}!"
          SLACK_COLOR: "danger"

カスタムWebhookアラート

専用のGitHub Actionが用意されていないサービスには、汎用Webhookを使用できます。通常はcurlなどを使って、指定したURLにHTTP POSTリクエストを送信します。

これにより最大限の柔軟性が得られ、カスタムダッシュボード、インシデント管理システム、さらにはSMSゲートウェイとも連携できます。

name: Custom Webhook Alert

on: [workflow_dispatch]

jobs:
  alert:
    runs-on: ubuntu-latest
    steps:
      - name: Send Custom Alert
        run: |
          curl -X POST -H "Content-Type: application/json" \
          -d '{"text":"A custom alert from GitHub Actions!"}' \
          ${{ secrets.CUSTOM_WEBHOOK_URL }}
        env:
          CUSTOM_WEBHOOK_URL: ${{ secrets.CUSTOM_WEBHOOK_URL }}

通知対象の絞り込み

パイプラインの異なる部分について、別々のチームに通知したい場合があります。if:条件を使用すると、次の基準で通知を絞り込めます。

  • ブランチ: github.ref == 'refs/heads/main'
  • ジョブのステータス: always()、success()、failure()、cancelled()
  • 特定のステップ: 特定のステップの結果を確認します。

これにより、関係のあるアラートだけを適切な相手に届けられます。

通知用シークレットの保護

通知サービスのWebhook URLやAPIトークンは機密情報です。ワークフローファイルに直接ハードコードしてはいけません。

必ずGitHub Secretsとして保存してください。これらは暗号化され、ワークフローの実行中にのみランナーへ公開されるため、認証情報を安全に保護できます。

通知に関する確認

コードのビルドとテストを行うワークフローを考えてみましょう。ビルドまたはテストのステップが失敗した場合のみ、Slackで通知を受け取りたいとします。

これを実現するには、Slack通知ステップにどのif:条件を指定すればよいでしょうか。

まとめ:通知とアラート

GitHub Actionsのパイプラインに自動通知とアラートを設定する方法を学びました。重要なポイントは次のとおりです。

  • チーム全体へのアラートには、SlackやWebhookなどの外部サービスを使用します。
  • Marketplace Actionsを使うと、一般的なサービスとの連携が簡単になります。
  • if:条件(例:failure())を適用して、通知対象を絞り込みます。
  • 機密性の高いWebhook URLやトークンは、必ずGitHub Secretsを使用して保護します。

効果的なアラートによって、チームはパイプラインの状態を積極的に維持できるようになります。

よくある質問

「通知とアラートの設定」レッスンは無料ですか?

はい。「通知とアラートの設定」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「通知とアラートの設定」で何を学びますか?

さまざまな通信チャネルを使用して、パイプラインの失敗、成功、重要なイベントに対する自動通知とアラートを設定します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「通知とアラートの設定」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. パイプライン監視戦略
  2. 外部サービスとの統合
  3. 通知とアラートの設定
  4. 構造化ログと分散トレーシング
← DevOps Bootcampに戻る