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
サーバーレスアーキテクチャで Twilioを安全に運用しよう!
Search
Kiminari Homma
December 08, 2015
Technology
0
110
サーバーレスアーキテクチャで Twilioを安全に運用しよう!
https://twiliojp-ug.doorkeeper.jp/events/35301
での登壇資料です。
Kiminari Homma
December 08, 2015
Tweet
Share
More Decks by Kiminari Homma
See All by Kiminari Homma
Twilio Meetup 東京 2022/11/11
honkimi
0
58
Twilio iOS 徹底攻略
honkimi
1
1.2k
2021年 Twilio Voice 報告
honkimi
0
310
WebRTC ビジネスの失敗と成功
honkimi
2
1.8k
最近の Twilio トレンド報告
honkimi
0
400
Twilio Meet Up
honkimi
0
76
利用ユーザーからみた Twilio の紹介
honkimi
0
91
Zendesk App を Heroku で作ってみた話
honkimi
0
140
国内における Twilio x Alexa
honkimi
0
750
Other Decks in Technology
See All in Technology
ガバメントクラウドの概要と自治体事例(名古屋市)
techniczna
2
210
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
180
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
3
5.5k
SREとソフトウェア開発者の合同チームはどのようにS3のコストを削減したか?
muziyoshiz
1
210
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
1
580
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
1
310
そのWAFのブロック、どう活かす? サービスを守るための実践的多層防御と思考法 / WAF blocks defense decision
kaminashi
0
140
スタートアップにおけるこれからの「データ整備」
shomaekawa
2
350
「AI駆動PO」を考えてみる - 作る速さから価値のスループットへ:検査・適応で未来を開発 / AI-driven product owner. scrummat2025
yosuke_nagai
3
800
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
140
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
【Oracle Cloud ウェビナー】クラウド導入に「専用クラウド」という選択肢、Oracle AlloyとOCI Dedicated Region とは
oracle4engineer
PRO
3
120
Featured
See All Featured
Balancing Empowerment & Direction
lara
4
680
Writing Fast Ruby
sferik
629
62k
Documentation Writing (for coders)
carmenintech
75
5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Rails Girls Zürich Keynote
gr2m
95
14k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Navigating Team Friction
lara
189
15k
Done Done
chrislema
185
16k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Thoughts on Productivity
jonyablonski
70
4.9k
Building Applications with DynamoDB
mza
96
6.7k
Transcript
5XJMJP"1*ษڧձ7PM αʔόʔϨεΞʔΩςΫνϟ Ͱ5XJMJPΛ҆શʹӡ༻͠Α͏ʂ TFMGSFF MMD ,JNJOBSJ)PNNB
ࣗݾհ
ຊؒ ߖ @kimihom ϘΫίί ӡӦऀ http://www.bokukoko.info/ CTO at selfree,llc Ruby
on Rails, AWS, Heroku, Android, iOS TwilioJP-UG ϝϯόʔ
ίʔϧίωΫτ as a Service ސ٬ใͱ࿈ಈͨ͠ίʔϧηϯλʔΛߏங Webϒϥβ͕ిΘΓ ֨҆ɾຊ֨ػೳɾଈಋೖ ̎िؒແྉτϥΠΞϧ࣮ࢪத αʔϏεհ https://www.callconnect.jp/
$POUFOUT w 5XJMJPͷ෮श w ϑΥʔϧόοΫ63- w αʔόʔϨεΞʔΩςΫνϟ w ٳܜ w
ϋϯζΦϯ
ͷ෮श
Voice Client ిͷड৴ ԻϑΝΠϧ࠶ੜ௨Ի μΠϠϧૢ࡞ʹԠͨ͡ಈ࡞ସ ௨தͷిͷ੍ޚ ిͷൃ৴ ϒϥβɾεϚϗͰి Voice ͱ࿈ಈͯ͋͠ΒΏΔ௨Λૢ࡞
and More.. →ࣗ༝ʹΈ߹ΘͤՄʂ
TwiML Twilio ͰిΛड৴ɾൃ৴͢Δͱ͖ͳͲɺ Twilio ಈ࡞໋ྩΛग़ͨ͢ΊͷXML Ͳ͏͢Ε͍͍ʁ ͜͏͠Ζ(TwiML) Webαʔόʔ <?xml version="1.0"
encoding="UTF-8"?> <Response> <Gather action=“https://www.myapp.com/action”> <Play loop=“5”>https://www.myasset.com/voice.wav</Play> </Gather> </Response> αϯϓϧ
REST API HTTP ௨৴Ͱ Twilio ͷใͷऔಘɾ࡞ɾߋ৽ɾআͳͲΛߦ͏ ֤ݴޠʹରԠ (PHP, Ruby, Python,
Node.js etc) Webαʔόʔ ͜Εͬͯ ͜͏ͳΓ·ͨ͠ ྫ͑ ɾి൪߸ͷऔಘɺߪೖɺআ ɾిΛ͔͚Δɺ௨ͷߋ৽ ɾSMS ૹ৴ ɾͦͷଞɺTwilio ϚΠϖʔδʹ͋Δૢ࡞ΛࣗલͰ࣮
ϑΥʔϧόοΫ63-
ϦΫΤετURL ͱ ϑΥʔϧόοΫURL ి͕͔͔͖ͬͯͨͱ͖ʹɺ࠷ॳʹ Twilo ͕ฉ͖ʹߦ͘ URL Ͳ͏͢Ε͍͍ʁ Error! Webαʔόʔ
ϦΫΤετURL ϦΫΤετ URL ͰTwiMLΛղੳͰ͖ͳ͔ͬͨ߹ʹฉ͖ʹߦ͘URL ϑΥʔϧόοΫ URL ϦΫΤετ URL Ͳ͏͢Ε͍͍ʁ ϑΥʔϧόοΫ URL ͜͏͠Ζ(TwiML)
ʮΞϓϦέʔγϣϯͷΤϥʔ͕ൃੜ͠·ͨ͠ɻʯ 4BZ
1SPCMFN w ిΛ͔͚ͨਓ͔͕͙͢͠ʹΘ͔Βͳ͍ w ΞϥʔττϦΨʔ࠷ͯ͘ w 5XJMJPμογϡϘʔυͷϩάΛຖճݟΔͷେม w ΞϓϦέʔγϣϯͷ͍ͤʹͳͬͯ͠·͏ ͦͷ௨Γ͕ͩ
ϦΫΤετURL ͱ ϑΥʔϧόοΫURL ి͕͔͔͖ͬͯͨͱ͖ʹɺ࠷ॳʹ Twilo ͕ฉ͖ʹߦ͘ URL Ͳ͏͢Ε͍͍ʁ Error! Webαʔόʔ
ϦΫΤετURL ϦΫΤετ URL ͰTwiMLΛղੳͰ͖ͳ͔ͬͨ߹ʹฉ͖ʹߦ͘URL ϑΥʔϧόοΫ URL ϦΫΤετ URL Ͳ͏͢Ε͍͍ʁ ϑΥʔϧόοΫ URL ͜͏͠Ζ(TwiML) ?
ϑΥʔϧόοΫ63-ઌͷ݅ w ϦΫΤετ63-ͱҧ͏αʔόʔͰ͋Δ w ·ͣམͪΔ͜ͱ͕ͳ͍ w ΤϥʔΛݕͰ͖ΔΑ͏ʹ͢ΔͨΊɺ੩తͳϑΝΠ ϧͰͳ͘ɺϓϩάϥϜΛಈ͔͍ͨ͠
ͦ͜Ͱ lαʔόʔϨεΞʔΩςΫνϟz 1)1ͳͲͷαʔόʔΛ͜ͷͨΊʹΘ͟Θ ͟ݐͯΔͷ࡞Δͷཧ͢Δͷ໘ɻ ͓͔͔ͦͯۚ͠Δɻ
"84-BNCEB "NB[PO"1*(BUFXBZ lαʔόʔϨεΞʔΩςΫνϟz
ɾ"84ͷΠϕϯτΛτϦΨʹɺҙͷ ίʔυΛ࣮ߦ ɾ/PEFKT+BWB1ZUIPO ɾ-JOVYڥʹ"844%, *NBHF.BHJDL ͕ଂ ɾOPEF@NPEVMFTͳͲΛ;JQʹݻΊͯΞοϓ ϩʔυՄ ɾ͔݄ʹສ݅ͷϦΫΤετ͓Αͼ
(#ඵͷίϯϐϡʔςΟϯά࣌ؒ ͕ແྉ ɾϩά$MPVE8BUDIͰӾཡ "84-BNCEB
w "NB[PO4ʹը૾͕Ξοϓϩʔυ͞ΕͨλΠϛϯά Ͱɺը૾ΛϦαΠζ w "NB[PO%ZOBNP%#ʹσʔλ͕ೖ͞ΕͨλΠϛϯά ͰɺσʔλΛܗ w $SPOͷΑ͏ʹҰճͷλΠϛϯάͰɺόονॲཧΛ ࣮ߦ w
όοΫάϥϯυδϣϒΛ"84-BNCEBԽ &YBNQMFTPG"84-BNCEB
"NB[PO"1*(BUFXBZ ɾ֎෦"1*Λެ։͢Δͷʹཱͭ ɾ"84-BNCEBΛΤϯυϙΠϯτͱ ͯ͠ࢦఆՄೳ ɾಠࣗ63-ͷൃߦ ɾ"1*ͷόʔδϣϯཧɾ࣮ߦ੍ݶ ɾJ04"OESPJE͚4%,ൃߦ ɾ4XBHHFSରԠ ࠓͷ݄ϦϦʔεʂ ݄ʹ౦ژϦʔδϣϯ։ઃ
ͣͬͱಈ͍͍ͯΔzαʔόʔzͷ֓೦͕ͳ͘ͳΓɺ ඞཁʹͳͬͨͱ͖ʹىಈͯ͠αʔόʔͷΑ͏ʹৼΔ͏ ίετɺߴՄ༻ੑΛ࣮ݱ
:PVS 4FSWFS Ϧ Ϋ Τ ε τ 6 3- Τ
ϥ ʔ ʂ ి ᶃ ᶄ ᶅ "1* (BUFXBZ -BNCEB ϑ Υ ʔ ϧ ό ο Ϋ 6 3 - 5X J. -
5XJMJPϦΫΤετ63-Λ αʔόʔϨεΞʔΩςΫνϟԽʁ ͦΕ (PPE4PMVUJPO
ࠓճͷϋϯζΦϯ w "84-BNCEBͷίʔυ࡞ w "NB[PO"1*(BUFXBZͷઃఆͱσϓϩΠ w ϑΥʔϧόοΫ63-Λ"NB[PO"1*(BUFXBZ w 5XJMJPͷϦΫΤετ63-Λଘࡏ͠ͳ͍63- w
ಈ࡞֬ೝ
ϋϯζΦϯखॱ݄ͷ 5XJMJP"EWFOU$BMFOEBSʹͯ