0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · レッスン

外部サービスとの統合

GitHub Actions のワークフローを、サードパーティ製の監視、ログ、インシデント管理ツールに接続します。

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

パイプラインを接続する

GitHub Actionsと外部サービスの統合について学びましょう。現代のソフトウェア開発では、多くのツールを連携させて利用します。

CI/CDパイプラインをこれらのツールに接続すると、コミュニケーションを自動化し、データを一元管理し、チーム全体の効率を向上させることができます。

  • 通知:SlackやTeamsでアラートを受け取れます。
  • 課題追跡:JIRAチケットを自動的に作成できます。
  • 監視:DatadogやSplunkにデータを送信できます。

Webhooks:基本的な接続

多くの外部サービスでは、情報を受け取る主な方法としてwebhooksを使用します。Webhookとは、特定のイベントが発生したときに、あるアプリケーションから別のアプリケーションへ自動的に送信されるメッセージだと考えてください。

GitHub Actionsのワークフローが完了、失敗したとき、または特定のステップを実行したときに、外部サービスが提供するWebhook URLへデータを含むPOSTリクエストを送信できます。これにより、そのサービスでアクションが実行されます。

Slack:リアルタイムアラート

ワークフローのステータスをリアルタイムで通知することは重要です。そのためによく使われるツールがSlackです。

GitHub ActionsからSlackにメッセージを送信するには、通常、Slack Incoming Webhook URLが必要です。このURLは、Slackワークスペースの設定(「Apps & integrations」など)で生成できます。

重要:この機密性の高いURLは必ずGitHub Secretとして保存し、決してハードコードしないでください。

Slackアラート用ワークフロー

ワークフロー内で単純なcurlコマンドを使って、基本的なSlack通知を送信する方法を見てみましょう。この例では、SLACK_WEBHOOK_URLという名前のSecretに保存されたWebhook URLを使用します。

この例では、mainへのプッシュがあるたびに通知します。

name: Slack Notification Demo

on:
  push:
    branches:
      - main

jobs:
  notify:
    runs-on: ubuntu-latest
    steps:
      - name: Send Slack Notification
        run: |
          curl -X POST -H 'Content-type: application/json' \
          --data '{"text":"GitHub Actions workflow *${{ github.workflow }}* for commit `{{ github.sha }}` by _${{ github.actor }}_ on branch `${{ github.ref_name }}` has completed!"}' \
          ${{ secrets.SLACK_WEBHOOK_URL }}

Marketplace Actionsで簡略化

curlも使えますが、多くの連携では、あらかじめ構築されたGitHub Marketplace Actionsを使うと処理を簡略化できます。これらのアクションは特定のサービスと連携するロジックをカプセル化するため、ワークフローがすっきりして読みやすくなります。

GitHub Marketplaceで、目的のサービスに接続するアクションを検索できます。たとえば、Slack、JIRA、Microsoft Teamsなどに対応したアクションが多数あります。

JIRA:課題追跡を自動化

JIRAなどの課題追跡システムと統合すると、次のような作業を自動化できます。

  • ワークフローが失敗したときに、新しいバグチケットを作成する。
  • プルリクエストのイベントに基づいて、既存の課題にコメントを追加する。
  • コードがパイプラインを進むのに合わせて、課題のステータスを更新する。

これにより、手作業を介さずに開発チームと運用チームの連携を維持できます。

JIRA課題用ワークフロー

この例では、一般的なMarketplace Actionを使い、特定のワークフロー(CIワークフローなど)が失敗した場合にJIRA課題を作成します。認証にGitHub Secretsを使用している点に注目してください。

workflow_runトリガーを使うと、別のワークフローの完了に反応するワークフローを作成できます。

name: JIRA Issue on Failed Workflow

on:
  workflow_run:
    workflows: ["Your CI Workflow Name Here"]
    types:
      - completed

jobs:
  create_issue:
    if: ${{ github.event.workflow_run.conclusion == 'failure' }}
    runs-on: ubuntu-latest
    steps:
      - name: Create JIRA Bug Ticket
        uses: atlassian/github-jira-action@v2.1.0
        with:
          jira-base-url: ${{ secrets.JIRA_BASE_URL }}
          jira-user-email: ${{ secrets.JIRA_USER_EMAIL }}
          jira-api-token: ${{ secrets.JIRA_API_TOKEN }}
          project: 'DEV'
          issue-type: 'Bug'
          summary: 'Workflow failed: ${{ github.event.workflow_run.workflow_name }}'
          description: 'Workflow run URL: ${{ github.event.workflow_run.html_url }}\nFailed commit: ${{ github.event.workflow_run.head_sha }}'

監視とログに接続する

通知や課題追跡に加えて、Datadog、Splunk、New Relic、カスタムログアグリゲーターなどの高度な監視・ロギングツールとも統合できます。

  • メトリクス:ビルド時間やテスト結果に関するカスタムメトリクスを送信します。
  • ログ:ワークフローのログを転送して一元的に分析します。
  • トレース:デプロイイベントをアプリケーションのパフォーマンスに関連付けます。

これらの統合では、ツールベンダーが提供する専用APIやMarketplace Actionを使用することが一般的です。

連携を安全にする

外部サービスと統合する際は、セキュリティが最優先です。外部アカウントへのアクセスを許可するAPIキー、トークン、Webhook URLを扱うことがよくあります。

このような機密性の高い認証情報は、必ずGitHub Secretsを使って保存してください。ワークフローファイルに直接ハードコードしてはいけません。これにより、誤って情報が公開されるのを防ぎ、認証情報を安全に保管できます。

クイックチェック:連携のセキュリティ

GitHub ActionsのワークフローをAPIキーを使って外部のインシデント管理システムに接続する必要があります。ワークフローでこのAPIキーを扱う方法として、最も安全で推奨されるものはどれですか。

まとめ:連携したワークフロー

GitHub Actionsのワークフローをさまざまな外部サービスと統合する方法を学びました。

  • Webhooksは、こうした接続でよく使われる仕組みです。
  • SlackとJIRAは、通知や課題追跡に利用される代表的なサービスです。
  • GitHub Marketplace Actionsを使うと、複雑な統合を簡略化できます。
  • APIキーやWebhook URLなどの機密性の高い認証情報は、必ずGitHub Secretsを使って安全に管理してください。

これらの統合により、CI/CDパイプラインの機能が強化され、チームを取り巻く幅広いエコシステムとの接続性も高まります。

よくある質問

「外部サービスとの統合」レッスンは無料ですか?

はい。「外部サービスとの統合」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CI/CD with GitHub Actions & DevOps Pipelinesコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CI/CD with GitHub Actions & DevOps Pipelinesコースには全4レッスンが含まれています。

「外部サービスとの統合」で何を学びますか?

GitHub Actions のワークフローを、サードパーティ製の監視、ログ、インシデント管理ツールに接続します。 ブラウザで直接実行するハンズオンコードでCI/CD with GitHub Actions & DevOps Pipelinesを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

CI/CD with GitHub Actions & DevOps Pipelinesを始めるのに経験は必要ですか?

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

「外部サービスとの統合」レッスンにはどのくらい時間がかかりますか?

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

このCI/CD with GitHub Actions & DevOps Pipelinesレッスンでコードを書いて実行できますか?

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

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

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