7
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

Amplify Consoleの通知をSlackに流す

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に簡単に通知できる。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
7
Help us understand the problem. What are the problem?