Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Amplify Console のビルド通知をSlackで受け取るためにやったこと
Search
youta ogino
July 31, 2020
Programming
1
4.8k
Amplify Console のビルド通知をSlackで受け取るためにやったこと
2020/07/31 Amplify Meetup#01の登壇内容
youta ogino
July 31, 2020
Tweet
Share
More Decks by youta ogino
See All by youta ogino
【CNDT2020】Amebaアフィリエイト基盤の GKEアーキテクチャと マイクロサービス
youta1119
2
1.1k
KotlinFest2019
youta1119
4
11k
Other Decks in Programming
See All in Programming
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
2
200
"config" ってなんだ? / What is "config"?
okashoi
0
240
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
840
Elm 0.19.0 Changes
bkuhlmann
0
490
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
9
4.1k
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
230
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
150
What We Can Learn From OSS
inouehi
0
420
Random\Randomizer クラスで日常のあれこれを解決しよう! / Random\Randomizer class solves familiar trouble
cocoeyes02
0
250
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets
hollycummins
0
230
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
19
1.7k
Docker and Python
trallard
34
2.7k
Music & Morning Musume
bryan
41
5.6k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Adopting Sorbet at Scale
ufuk
68
8.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
322
20k
Being A Developer After 40
akosma
57
580k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
GraphQLとの向き合い方2022年版
quramy
32
12k
Writing Fast Ruby
sferik
621
60k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Transcript
Amplify Console のビルド通知を Slackで受け取るためにやったこ と 2020/07/31 Amplify Meetup#01
自己紹介 • 荻野 陽太 • バックエンドエンジニア • 株式会社justInCaseTechnologies(副業) • twitter/github
@youta1119
会社紹介的なやつ 書きたいこと募集 SRE/バックエンド 絶賛募集中!!!
これ、全部Amplify Consoleです
justInCaseにおけるAmplify Console導入状況 • ほぼ全てのプロダクトで導入済み • dev環境だけで10以上のアプリがある • 基本的にアプリはcfnかcdkで管理している
ビルド完了したらSlackに通知を飛ばしたい! ある日ビルド完了したらSlackにビルド結果の通知が欲しいという要望が... → 現状のAmplifyにはそういう機能なかった... amplify.ymlのpostBuild内で通知を送る手もあるがこれだと、ビルドの前に失 敗すると通知送れない...
ビルド完了したらSlackに通知を飛ばしたい! 参考: https://qiita.com/fossamagna/items/70e4e399de59984ad3bb 1.メール通知を設定 2.SNS Topicが出来る 3. Lambdaで購読
ビルド完了したらSlackに通知を飛ばしたい!
None
None
Slackに通知を飛ばせるようになった! ソースコードはこちら https://gist.github.com/youta1119/fc6a6d3b769b2fc54d33db67ba4c4ed5
これでSlackに通知を送れるようになったが... • CloudFormationではメール通知の設定ができない • 手作業でメール通知の設定をしないといけない • SNSのARNは送られてくるメールを見ないとわからないので自動化できな い... 既に10個以上アプリがあるので手動で設定するのはつらい →なんとか自動化したい...
他に何かよい方法がないものか • Amplify ConsoleのIssueに気になるコメントを発見 • https://github.com/aws-amplify/amplify-console/issues/13#issueco mment-603459099 .
他に何かよい方法がないものか 意訳: • Amplifyが作成するEventBridgeのイベントパターンを変更して、すべてのブランチ(過去、現 在、未来)についてメールに通知できるよ。 • EventBridgeのWebコンソールに移動して「 amplify-xxxx-xxxx-branch-notification」の形式を 見つけて、ルールのイベントパターンを編集してね EventBridge…AWS環境で発生するイベントを、
AWSサービスやSaaSのサービスと紐付けることがで きるサービス
None
他に何かよい方法がないものか AmplifyConsoleが自動で作成するEventBridgeのRuleと同じRuleを自分で作 ればビルドイベントが受け取れるのでは? →やってみた
ビルドイベントを受け取るRuleを作ってみる ここにビルドイベントを受け取る 用のイベントパターンを記述
ビルドイベントを受け取るRuleを作ってみる ビルドイベントを受け取りたいアプリのappIdを指定 1. ビルドイベントを受け取りたいアプリのappIdを指定 2. ビルドイベントを受け取りたいブランチを指定(何も指定しな い場合全てのブランチのビルドイベントを受け取れる) 補足)Amplify AppのAppIdは aws
amplify list-appsを実行すれば分かる
ビルドイベントを受け取るRuleを作ってみる 適当なSNSのトピックを指定 SNSに転送するイベントの整形 amplifyが自動で作るinput transformerの設定 をコピペしたものそ設定
Rule作成時の注意点 • DefaultのEventBusに作らないといけない
ビルドイベントを受け取るRuleを作ってみる
Slackに通知の設定を自動化できた!
まとめ Amplify Console のビルド通知をSlackで受け取りたい場合... 1. EventBridgeでAmplifyのビルドイベントを受け取ってSNSに転送するルー ルを作る 2. LambdaでSNSを購読してSlackに通知を送る
最後に • AWSさん、Amplify ConsoleからSlack通知を送れる機能を作ってください