22
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Amplify Consoleの通知をSlackに流す

Last updated at Posted at 2019-12-10

Amplify Consoleには通知メールを設定する機能があります。ビルドジョブの開始、終了のタイミングで登録したメールアドレスにメールを送信してくれます。ただ、通知はありがたいんですがメールだけなのが辛い。最近だと開発ではチャットを使っていて Amplify Console からの通知もチャットに流したくなりました。
試してみたらできたのでその紹介です。

TL;DR

Amplify Consoleの通知メールはSNSを使っているので、そのSNSのトピックをSubscribeすればLambdaの起動もできて、そこからチャットにメッセージを送信できたりします。
Slack, Idobataへ通知するLambdaは Serverless Application Repositoryに公開 しています。

Lambdaを起動するまでの流れ

  1. Amplify Consoleの通知メールで一旦、メールアドレスを設定する。
  2. アドレスを設定するとSNSのトピックが作成される。
  3. 上記のトピックを購読するLambdaを作成する。
  4. Amplify Consoleでビルドを実行する
  5. トピックを購読しているLambdaが起動する。

Amplify Consoleの通知メールを設定する

最初に、Amplify Consoleで通知メールを設定します。下の画像のようにメールアドレスとブランチを指定します。
1つ目の通知先メールアドレスが登録されると、通知に使われるSNSトピックが作成されます。AWSコンソール上でもトピックが作成されているのが確認できます。

email_notifications.png

通知メールを確認する

通知メールを設定すると、登録したメールアドレスに次のようなメールが届きます。
ここにSNSトピックのARNが書かれています。このSNSトピックを購読すればLambdaも起動できます。

subscription_confirmation.png

なお、Confirm subscriptionのリンクはクリックしてもしなくてもいいです。

Lambdaを作成する

メールに書かれていたSNSトピックのをトリガーにしてLambdaを作成します。
SNSイベントのメッセージをチャット(Slack, Idobata)に送信するLambdaを作成しました。
作成済みのものは Serverless Application Repositoryに公開 しているので試すならそちらが簡単です。

ソースコードはGitHubに置いてあるので興味のある方はcloneするなりしてセットアップしてください(ソースコードからの細かなセットアップ方法はREADME.mdをみてください)。
https://github.com/fossamagna/amplify-console-notification

Lambdaを作成したら最初に設定したメールアドレスは削除してしまって構いません。

動作確認

Amplify Consoleで対象のリポジトリをビルドしてみてください。ビルドジョブの開始と終了(成功/失敗)のタイミングでチャットに通知されるようになります。

Slackだと次のように通知されるはずです。
スクリーンショット 2019-12-10 13.06.30.png

まとめ

  • Amplify Consoleからの通知メールはSNSだ。
  • SNSトピックを購読すればLambdaも起動できる。
  • amplify-console-notification を使うとSlack, Idobataに簡単に通知できる。
22
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?