Slide 1

Slide 1 text

Amplify Console のビルド通知を Slackで受け取るためにやったこ と 2020/07/31 Amplify Meetup#01

Slide 2

Slide 2 text

自己紹介 ● 荻野 陽太 ● バックエンドエンジニア ● 株式会社justInCaseTechnologies(副業) ● twitter/github @youta1119

Slide 3

Slide 3 text

会社紹介的なやつ 書きたいこと募集 SRE/バックエンド 絶賛募集中!!!

Slide 4

Slide 4 text

これ、全部Amplify Consoleです

Slide 5

Slide 5 text

justInCaseにおけるAmplify Console導入状況 ● ほぼ全てのプロダクトで導入済み ● dev環境だけで10以上のアプリがある ● 基本的にアプリはcfnかcdkで管理している

Slide 6

Slide 6 text

ビルド完了したらSlackに通知を飛ばしたい! ある日ビルド完了したらSlackにビルド結果の通知が欲しいという要望が... → 現状のAmplifyにはそういう機能なかった...  amplify.ymlのpostBuild内で通知を送る手もあるがこれだと、ビルドの前に失 敗すると通知送れない...

Slide 7

Slide 7 text

ビルド完了したらSlackに通知を飛ばしたい! 参考: https://qiita.com/fossamagna/items/70e4e399de59984ad3bb 1.メール通知を設定 2.SNS Topicが出来る 3. Lambdaで購読

Slide 8

Slide 8 text

ビルド完了したらSlackに通知を飛ばしたい!

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Slackに通知を飛ばせるようになった! ソースコードはこちら https://gist.github.com/youta1119/fc6a6d3b769b2fc54d33db67ba4c4ed5

Slide 12

Slide 12 text

これでSlackに通知を送れるようになったが... ● CloudFormationではメール通知の設定ができない ● 手作業でメール通知の設定をしないといけない ● SNSのARNは送られてくるメールを見ないとわからないので自動化できな い... 既に10個以上アプリがあるので手動で設定するのはつらい →なんとか自動化したい...

Slide 13

Slide 13 text

他に何かよい方法がないものか ● Amplify ConsoleのIssueに気になるコメントを発見 ● https://github.com/aws-amplify/amplify-console/issues/13#issueco mment-603459099 .

Slide 14

Slide 14 text

他に何かよい方法がないものか 意訳: ● Amplifyが作成するEventBridgeのイベントパターンを変更して、すべてのブランチ(過去、現 在、未来)についてメールに通知できるよ。 ● EventBridgeのWebコンソールに移動して「 amplify-xxxx-xxxx-branch-notification」の形式を 見つけて、ルールのイベントパターンを編集してね EventBridge…AWS環境で発生するイベントを、 AWSサービスやSaaSのサービスと紐付けることがで きるサービス

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

他に何かよい方法がないものか AmplifyConsoleが自動で作成するEventBridgeのRuleと同じRuleを自分で作 ればビルドイベントが受け取れるのでは? →やってみた

Slide 17

Slide 17 text

ビルドイベントを受け取るRuleを作ってみる ここにビルドイベントを受け取る 用のイベントパターンを記述

Slide 18

Slide 18 text

ビルドイベントを受け取るRuleを作ってみる ビルドイベントを受け取りたいアプリのappIdを指定 1. ビルドイベントを受け取りたいアプリのappIdを指定 2. ビルドイベントを受け取りたいブランチを指定(何も指定しな い場合全てのブランチのビルドイベントを受け取れる) 補足)Amplify AppのAppIdは aws amplify list-appsを実行すれば分かる

Slide 19

Slide 19 text

ビルドイベントを受け取るRuleを作ってみる 適当なSNSのトピックを指定 SNSに転送するイベントの整形 amplifyが自動で作るinput transformerの設定 をコピペしたものそ設定

Slide 20

Slide 20 text

Rule作成時の注意点 ● DefaultのEventBusに作らないといけない

Slide 21

Slide 21 text

ビルドイベントを受け取るRuleを作ってみる

Slide 22

Slide 22 text

Slackに通知の設定を自動化できた!

Slide 23

Slide 23 text

まとめ Amplify Console のビルド通知をSlackで受け取りたい場合... 1. EventBridgeでAmplifyのビルドイベントを受け取ってSNSに転送するルー ルを作る 2. LambdaでSNSを購読してSlackに通知を送る

Slide 24

Slide 24 text

最後に ● AWSさん、Amplify ConsoleからSlack通知を送れる機能を作ってください