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
Deploy from slack
Search
Hiroto Fukui
September 21, 2019
Programming
0
64
Deploy from slack
Practical guide to install a way to deploy static web site using Slash command.
Hiroto Fukui
September 21, 2019
Tweet
Share
More Decks by Hiroto Fukui
See All by Hiroto Fukui
メールアドレスを深堀りする
bary822
2
1.2k
kiba ETLで小さく始めるデータ分析基盤構築
bary822
3
260
AR_migrationの例外.pdf
bary822
0
59
GraphQLを_Rubyで気軽に試す.pdf
bary822
0
300
Other Decks in Programming
See All in Programming
AI Agent 時代的開發者生存指南
eddie
3
1.9k
Devoxx BE 2025 Loom lab
josepaumard
0
100
XP, Testing and ninja testing ZOZ5
m_seki
3
730
ALL CODE BASE ARE BELONG TO STUDY
uzulla
25
6.4k
Flutterで分数(Fraction)を表示する方法
koukimiura
0
130
Go言語の特性を活かした公式MCP SDKの設計
hond0413
1
240
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
170
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
230
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
15
5.8k
All About Angular's New Signal Forms
manfredsteyer
PRO
0
190
Leading Effective Engineering Teams in the AI Era
addyosmani
7
480
CSC305 Lecture 05
javiergs
PRO
0
220
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.6k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Facilitating Awesome Meetings
lara
56
6.6k
Designing for Performance
lara
610
69k
How to Ace a Technical Interview
jacobian
280
24k
Faster Mobile Websites
deanohume
310
31k
Code Reviewing Like a Champion
maltzj
526
40k
How GitHub (no longer) Works
holman
315
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Raft: Consensus for Rubyists
vanstee
140
7.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
238
140k
Transcript
Slackからデプロイ Hiroto Fukui @bary822
self self.name => Hiroto Fukui self.sns => @bary822 self.titles =>
[‘app engineer’, ‘data engineer’] self.companies => [‘rakuten’, ‘grooves’] self.likes => [‘dog’, ‘camping’,’SUP‘, ruby’]
Osaka Tokyo
None
Slackからデプロイしたい
?
前提 - サービスの静的サイト - Ruby製 - https://www.crowd-agent.com/agent/ - コードはGitHub -
S3でホスティング - bundle exec middleman s3_sync -e=production でデプロイ
? S3
1. /deploy production する 2. 任意のURLにPOSTリクエストを発行 3. レスポンスに応じてメッセージを表示
? S3
AWS Lambda FaaS(Function as a Service) 1. Lambda関数がリクエストを受け付ける 2. GitHubからコードをダウンロード
3. コマンド実行 4. S3 APIを呼び出してsync(デプロイ)
? S3
API Gateway Lambda S3
API Gateway Lambda S3
None
API Gateway Lambda CircleCI S3
API Gateway Lambda CircleCI S3
3秒ルール - Slashコマンドは3秒以内に何らかのメッセージを返す必要がある - それを超えるとエラーメッセージが表示される リクエストを受け取ると とりあえず何かを返すのが吉
API Gateway Lambda 1st CircleCI Lambda 2nd S3
リクエストがLambdaに届いた時にとりあえず返す CircleCI APIから200が返ってきた時に返す
よくあるかもしれない質問
Slashコマンドが呼ぶAPIの認証方法 - Slashコマンド毎にユニークなトークンがヘッダーに入ってPOSTされる - API Gatewayでそれを検証
Lambdaの無料枠内で収まるのでは - 多分収まる - デプロイするのは開発者ではない - マーケティングの人 - デプロイ回数をコントロールできない前提があった
CIに入れるとpushする度にデプロイされるのでは - DEPLOY という環境変数を見るようにした - Lambdaから呼び出す時のみ DEPLOY=true を設定 - CircleCI
APIではジョブ実行時の環境変数をパラメーターに指定できる