🛜

通知先HTTP機能のご紹介: 転送以外でもTROCCOはいろんなサービスと繋がれます

に公開

TROCCOの通知先HTTP機能の概要

TROCCOの通知先機能は、ジョブの失敗や完了をTROCCO外のプラットフォームから確認するための機能です。これまではEメールおよびSlackでの確認が可能でしたが、今回通知先の種類として、「HTTP」をサポートしました。
これにより、HTTPリクエストを受け付ける任意のサービスとAPIを介して通知を受信できるようになりました。
主なユースケースとしては以下の通りです。

  1. Chatworkなど、Slack以外の任意のチャットサービスに通知を送る
  2. ジョブ失敗時に、失敗したジョブのURLなどを元に任意のタスク管理サービスにチケットを自動発行する
    • TROCCOのジョブ失敗時にチケットを発行し、復旧時にクローズするような運用を行うことで、障害の件数や復旧までにかかったリードタイムを計測するような運用もできます。その際にはぜひ転送元Github転送元Backlogもご活用ください!

なお、公式ドキュメントは以下です。

https://documents.trocco.io/docs/notification#httpの場合

また、よく似た機能としてTROCCOのワークフローにHTTPリクエストタスクがありますが、こちらは文字通りワークフローのタスクとしての実行になるので、ワークフロー自体が失敗しタスク実行が止まってしまうと実行されません。
それに対し、今回の場合は「通知」なので、ジョブ失敗時にも確実に実行されることがポイントです。ジョブのエラー発生時に素早く気づくためにご活用ください。

HTTPリクエストタスクのドキュメントは以下です。
https://documents.trocco.io/docs/workflow-http-request-task

実践編: 実際の設定例

続いて、みなさん気になるであろう、実際にいくつかのサービスを例に通知するための設定例を見ていきましょう。
どのサービスでも共通のポイントとして、以下の点を押さえておいていただけるとスムーズです。

  1. 通知先URLなどの設定は「通知先」機能で行う
  2. そのうえで、どのジョブの結果を通知するか、どんな内容を通知するかといった設定は、転送設定、CDC、データマート、ワークフローなどの「通知設定」から行う

1. TROCCOのジョブ失敗時にChatworkへの通知を行う

「通知先」側の設定

  • URL:

    • https://api.chatwork.com/v2/rooms/<your_room_id>/messages を指定。※ <your_room_id> は通知したいルームIDを入力ください。
  • HTTPヘッダー

    • ヘッダー名: Content-Type, 値: application/x-www-form-urlencoded

メッセージに入力する値の例

bodyのみ入力すれば送れます。とてもシンプルですね。

{
  "body": "TROCCOのジョブが失敗しました {{ JOB_URL }}"
}

実際に通知されるメッセージの例

2. TROCCOのジョブ失敗時にGitHub Issues自動発行

通知先側の設定

画面イメージはChatworkの例と同様のため省略します。

  • URL
    • https://api.github.com/repos/<repo_owner>/<repo_name>/issues のように入力し、issueを作成時
  • HTTPヘッダー設定
    • ヘッダー名: Authorization, 値: <github_PAT> githubから取得したPAT。公式ドキュメントを参考に発行してください。
    • ヘッダー名: Accept, 値: application/vnd.github+json
    • ヘッダー名: X-GitHub-Api-Version, 値: 2022-11-28

※画面イメージは略。

メッセージに入力する値の例

{
  "title": "TROCCOのジョブが失敗しました",
  "body": "TROCCOのジョブが失敗しました {{ JOB_ID }}, {{ JOB_URL }}"
}

3. TROCCOのジョブ失敗時にBacklogのチケット自動発行

通知先側の設定

画面イメージはChatworkの例と同様のため省略します。

  • URL
    • https://<org-name>.backlog.com/api/v2/issues?apiKey=<apiKey>
  • HTTPヘッダー設定
    • ヘッダー名: Content-Type, 値: application/x-www-form-urlencoded

メッセージに入力する値の例

公式ドキュメントにならい、以下のように入力しましょう。

{
  "projectId": <your-project-id>,
  "summary": "TROCCOのジョブが失敗しました {{ JOB_ID }}, {{ JOB_URL }}",
  "priorityId": <your-priority-id>,
  "issueTypeId": <your-issue-type-id>
}

まとめ

TROCCOの通知先HTTPは一見地味ですが、ジョブが失敗したときなどに「素早く気づき」「復旧対応を行う」ための可能性を広げる機能として開発しています。紹介した他にも様々なサービスと繋がれる可能性があるのでぜひご活用ください。

株式会社primeNumber

Discussion