Raccoon Tech Blog [株式会社ラクーン 技術戦略部ブログ]

株式会社ラクーン 技術戦略部より、tipsやノウハウなど技術的な話題を発信いたします。

Gateway

AWS LambdaとAPI Gatewayを利用し、PagerDutyのインシデント発生時にSlackに専用チャンネルを作成する #3

こんにちは、インフラ及びシステム運用を担当している田中です。

前回の記事ではPagerDutyのWebhookをLambda関数で受け、SlackのIncident専用のチャンネルを作成してメッセージをpostしたり、IncidentがResolvedになったら専用チャンネルをarchiveしたりするところまでご紹介しました。

大まかにまとめると、下記のシーケンス図のような仕組みになります。

sequence_1

しかし、専用チャンネルまで作成したのにpostしたメッセージは簡単なテキストだけで、見栄えもぱっとしなければ、大した情報も含まれていませんでした。

そこで今回は、Slackにpostするメッセージの見栄えを改善したり、障害対応に必要な情報をメッセージに含めるなど、前回作ったプログラムに機能を追加していきます。

また、せっかくLambdaを使用しているのに他のAWSの機能を使わないのはもったいないので、Node.jsのAWS SDKを利用してAWSの機能を利用する方法についても説明していきたいと思います。
続きを読む

AWS LambdaとAPI Gatewayを利用し、PagerDutyのインシデント発生時にSlackに専用チャンネルを作成する #2

こんにちは、インフラ及びシステム運用を担当している田中です。

前回の記事に引き続き、AWSのAPI Gateway経由でLambdaファンクションを呼び出し、Slackの
APIを叩いて専用チャンネルを作成する手順を説明していきます。

前回の記事ではPagerDutyのWebhookをLambda関数で受け取るところまでご紹介しました。

これからLambda関数内でSlackのAPIをコールするための処理を記述することになります。

簡単なLambda関数を書くだけであれば特に開発環境が必要になるわけではないのですが、少し複雑な処理を行おうとすると外部モジュールが必要になってきたりしますので、まずは開発環境を作ることから始めましょう。

また、開発したコードのアップロードも管理コンソールからのアップロードは面倒ですし、ファイルサイズ等の制限もあります。
そこで、AWS CLIを利用して開発したコードをS3経由でデプロイするようにします。
続きを読む

AWS LambdaとAPI Gatewayを利用し、PagerDutyのインシデント発生時にSlackに専用チャンネルを作成する #1

こんにちは、インフラ及びシステム運用を担当している田中です。

当社ではサーバーやネットワークに障害が発生した際に、障害対応の担当者へ通知を行う手段としてPagerDutyを利用しています。

担当者が障害を認知した後は障害内容を調査し、必要に応じて開発者や責任者へエスカレーションを行うことになります。

障害の発生が平日の日中帯であれば関係者間のコミュニケーションに問題はないのですが、夜間・休日の場合は関係者がそれぞれ別の場所に居ることになるため、障害ごとにSlackの専用チャンネルを作成して関係者間で情報を共有しています。

SlackにはPagerDutyのWebhookを受け、インシデントの内容を特定のチャンネルにpostすることができる機能が用意されています。
しかし、あくまでも特定のチャンネルにpostすることができるだけで、インシデントごとに専用のチャンネルを作成したりすることはできません。

そこで、AWSのAPI Gateway経由でLambdaファンクションを呼び出し、SlackのAPIを叩いて専用チャンネルを作成するようにしています。

今回から数回に分け、この仕組について説明したいと思います。
続きを読む
記事検索