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
Amazon EventBridgeを利用して StripeのWebhookを処理する / s...
Search
Hidetaka Okamoto
January 27, 2020
Programming
1
180
Amazon EventBridgeを利用して StripeのWebhookを処理する / stripe-with-eventbridge
JP_Stripes (Stripe ユーザーグループ)in 大阪 Vol.5
Hidetaka Okamoto
January 27, 2020
Tweet
Share
More Decks by Hidetaka Okamoto
See All by Hidetaka Okamoto
OpenAI APIで API Changelogを要約してみた話 / chatgpt-osaka-1
hideokamoto
0
510
コミュニティ運営から 中の人に変わって感じたこと
hideokamoto
0
64
Developerが Developer Advocateになった話 / dev-rel-meetup-tokyo-71
hideokamoto
0
290
Jamstack開発者のための App Runner入門
hideokamoto
1
450
WordPressでの webサイト制作2022 / ngk2022s
hideokamoto
0
400
JavaScript(TypeScript)で メディアサイトを インフラから構築する方法 / jsconf-jp-2021
hideokamoto
2
4.1k
AWS上でStripeを利用したアプリをより安全にデプロイする方法 /jaws-pankration-2021
hideokamoto
1
180
Shifter Headlessと Headless WordPressの紹介
hideokamoto
0
1.7k
Stripe & Next.js + AWS Amplify で会員 + 定期課金機能 / JP_Stripes20210903
hideokamoto
7
3.1k
Other Decks in Programming
See All in Programming
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
950
AIプログラミング雑キャッチアップ
yuheinakasaka
13
2.8k
Django NinjaによるAPI開発の効率化とリプレースの実践
kashewnuts
1
200
コードを読んで理解するko build
bells17
1
100
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
640
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1.1k
SwiftUI Viewの責務分離
elmetal
PRO
2
260
ARA Ansible for the teams
kksat
0
170
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
140
楽しく向き合う例外対応
okutsu
0
570
負債になりにくいCSSをデザイナとつくるには?
fsubal
10
2.5k
もう僕は OpenAPI を書きたくない
sgash708
5
1.9k
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Designing for Performance
lara
604
68k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Unsuck your backbone
ammeep
669
57k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Code Reviewing Like a Champion
maltzj
521
39k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Transcript
Amazon EventBridgeΛར༻ͯ͠ StripeͷWebhookΛॲཧ͢Δ JP_Stripes (Stripe Ϣʔβʔάϧʔϓʣin େࡕ Vol.̑ #JP_Stripes
About: Hidetaka Okamoto גࣜձࣾσδλϧΩϡʔϒ "MFYB$IBNQJPOT 3FBDU5ZQF4DSJQU"84 #JP_Stripes
About: Hidetaka Okamoto גࣜձࣾσδλϧΩϡʔϒ "MFYB$IBNQJPOT 3FBDU5ZQF4DSJQU"84 #JP_Stripes
#JP_Stripes
Agenda ࢼͨ͜͠ͱɿ4USJQFͷ8FCIPPLΛ"NB[PO&WFOU#SJEHFͰॲཧ ࢼͨ͠ཧ༝ɿ8FCIPPLͷཧΛޮԽ͔ͨͬͨ͠ ࢼͨ͠ํ๏ɿ"84$%,Ͱ8FCIPPLΛίʔυཧ ࢼͨ݁͠Ռɿ$'/UFSSBGPSNݣ͍ʹΑͦ͞͏ #JP_Stripes
Agenda ࢼͨ͜͠ͱɿ4USJQFͷ8FCIPPLΛ"NB[PO&WFOU#SJEHFͰॲཧ ࢼͨ͠ཧ༝ɿ8FCIPPLͷཧΛޮԽ͔ͨͬͨ͠ ࢼͨ͠ํ๏ɿ"84$%,Ͱ8FCIPPLΛίʔυཧ ࢼͨ݁͠Ռɿ$'/UFSSBGPSNݣ͍ʹΑͦ͞͏ #JP_Stripes
StripeͷWebhookΛAWS 4USJQFͷ8FCIPPLཧ(6*࡞ۀ͕Ұൠత "84ʹΠϕϯτΛ%JTQBUDI͢ΔαʔϏε͕͋Δ "NB[PO&WFOU#SJEHF$MPVE8BUDI&WFOUϕʔεͷ౷߹αʔϏε "NB[PO&WFOU#SJEHFͰ4USJQF"84ͷ8FCIPPLܥΛूཧ #JP_Stripes
Agenda ࢼͨ͜͠ͱɿ4USJQFͷ8FCIPPLΛ"NB[PO&WFOU#SJEHFͰॲཧ ࢼͨ͠ཧ༝ɿ8FCIPPLͷཧΛޮԽ͔ͨͬͨ͠ ࢼͨ͠ํ๏ɿ"84$%,Ͱ8FCIPPLΛίʔυཧ ࢼͨ݁͠Ռɿ$'/UFSSBGPSNݣ͍ʹΑͦ͞͏ #JP_Stripes
StripeͷWebhookཧΛָ͍ͨ͠ (6*Ͱ8FCIPPLΛͭͭొͯͨ͠ ଞͷ4BB4ͱͷσʔλ࿈ܞͳͲɺ8FCIPPLͰͭͳ͙ͷ͕૿͖͑ͯͨ Ͳͷ8FCIPPLͰԿΛ͍͔͕ͯͨ࣍͠ୈʹΘ͔Βͳ͘ͳΔ 8FCIPPLͷཧΛָʹ͍ͨ͠ #JP_Stripes
Amazon EventBridge HTTPS://AWS.AMAZON.COM/JP/EVENTBRIDGE/ #JP_Stripes
"NB[PO&WFOU#SJEHFɺಠࣗͷΞϓϦέʔγϣϯɺ౷߹ 4PGUXBSFBTB4FSWJDF 4BB4 ΞϓϦέʔγϣϯɺ͓Αͼ"84ͷ αʔϏε͔ΒͷσʔλΛ༻ͯ͠ɺΞϓϦέʔγϣϯΛ؆୯ʹଓ ͢Δ͜ͱΛՄೳʹ͢ΔαʔόʔϨεΠϕϯτόεͰ͢ɻ &WFOU#SJEHFɺ;FOEFTLɺ%BUBEPHɺ1BHFSEVUZͳͲͷΠϕϯ τιʔε͔ΒϦΞϧλΠϜσʔλͷετϦʔϜΛ৴͠ɺͦͷσʔλ Λ"84-BNCEBͳͲͷλʔήοτʹϧʔςΟϯά͠·͢ɻ IUUQTBXTBNB[PODPNKQFWFOUCSJEHF
EventBridgeͰͰ͖Δ͜ͱ $MPVE8BUDI&WFOU͕αʔϏεͱͯ͠ಠཱͨ͠Α͏ͳΠϝʔδ "84্ΧελϜͷΠϕϯτΛࢹ Πϕϯτ͕དྷΔͱɺఆٛ͞ΕͨαʔϏεʢ-BNCEBͳͲʣΛ࣮ߦ λʔήοτΠϕϯτͱݺͼग़͠ઌϧʔϧͰఆٛՄೳ #JP_Stripes
ΠϕϯτύλʔϯͰ StripeͷΠϕϯτΛ ࢦఆ͢Δ #JP_Stripes
TargetͰ࣮ߦ͢ΔॲཧΛࢦఆ͢Δ ɾϧʔϧͷఆՃύϥϝλࢦఆՄೳ ɾෳొՄೳɺϧʔϧͷઃఆݸผ #JP_Stripes
StripeͰEventBridge ΧελϜΠϕϯτͱͯ͠༻͢Δ 4USJQF8FCIPPL"1*(8-BNCEB&WFOU#SJEHF 4USJQFʹ8FCIPPL͚ͭͩొʢରΠϕϯτશͯૹ৴ʣ &WFOU#SJEHFଆͰΠϕϯτλΠϓΛผͯ͠ॲཧܥΛىಈ͢Δ #JP_Stripes
ͪͳΈʹ
terraformͰ Stripeཧ Ͱ͖ΔΒ͍͠ #JP_Stripes ޙ͔Βͬͨ
WEBHOOKҎ֎ཧՄೳʢͷ༷ࢠʢͩΕ͔ࢼͯ͠ʢ࣍ճͬͯʣʣʣ HTTPS://GITHUB.COM/FRANCKVERROT/TERRAFORM-PROVIDER-STRIPE #JP_Stripes
Agenda ࢼͨ͜͠ͱɿ4USJQFͷ8FCIPPLΛ"NB[PO&WFOU#SJEHFͰॲཧ ࢼͨ͠ཧ༝ɿ8FCIPPLͷཧΛޮԽ͔ͨͬͨ͠ ࢼͨ͠ํ๏ɿ"84$%,Ͱ8FCIPPLΛίʔυཧ ࢼͨ݁͠Ռɿ$'/UFSSBGPSNݣ͍ʹΑͦ͞͏ #JP_Stripes
AWS CDK - εΫϦϓτݴޠͰϦιʔεཧ 5ZQF4DSJQU+BWBͳͲ $MPVE'PSNBUJPOͷ:".-ΛεΫϦϓτͰهड़͢Δ ܕݴޠΛ͑*%&Ͱೖྗิ͕͋Δ ॻ͖ํʹࣗ৴ͷͳ͍ϦιʔεΛ͏ͳΒ$%,͕ೖ͍͢͠ #JP_Stripes
ΠϕϯτύλʔϯͰ StripeͷΠϕϯτΛ ࢦఆ͢Δ #JP_Stripes
None
None
• @aws-cdk/aws-events • CfnEventBusͰೖଆ • CfnRuleͰDispatchϧʔϧ • eventPatter.detail-typeʹ StripeͷΠϕϯτΛྻڍ •
targetsʹݺͼग़͠ઌ
Stripe Webhook͔Β EventBridgeೖ #JP_Stripes
None
• EventBusName / Source CDKͷఆٛͱἧ͑Δ • DetailTypeʹ WebhookͷTypeΛ͢ • DetailʹຊମΛ͢
ͪͳΈʹ
ͬͯ·͔͢ɺॺ໊γʔΫϨοτ
Stripe͔Βͷ ϦΫΤετ͔Λ ݕূ͢Δ #JP_Stripes https://stripe.com/docs/webhooks/signatures
ॲཧલʹconstructEventͰݕূΛ AWS Secret ManagerΛ͏ͱΑΓ҆શ https://wp-kyoto.net/verify-stripe-webhook-signature
͓͞Β͍ ೖΓޱɿ4USJQF"1*(BUFXBZ-BNCEB&WFOU#SJEHF ࣮ॲཧɿ&WFOU#SJEHF-BNCEB'JSFIPTFFUDʜ 4USJQF8FCIPPLΛ͏͚Δ"1*ϦΫΤετͷݕূΛ "84$%,4FSWFSMFTT'8ͳͲͰ࣮ॲཧܥΛίʔυཧ͠Α͏ ΠϕϯτͷՃEFWQSPEͷৼΓ͚ίʔυ (JUͰ҆શཧʂ #JP_Stripes
Agenda ࢼͨ͜͠ͱɿ4USJQFͷ8FCIPPLΛ"NB[PO&WFOU#SJEHFͰॲཧ ࢼͨ͠ཧ༝ɿ8FCIPPLͷཧΛޮԽ͔ͨͬͨ͠ ࢼͨ͠ํ๏ɿ"84$%,Ͱ8FCIPPLΛίʔυཧ ࢼͨ݁͠Ռɿ$'/UFSSBGPSNݣ͍ʹΑͦ͞͏ #JP_Stripes
AWSͰཧ or StripeͰཧ 8FCIPPLͷཧΛ4USJQF͔Β"84ʹҠ͚ͨͩ͠ $'/UFSSBGPSNͳͲͰͷཧͱ-BNCEBͱͷ౷߹ָ͕ 4USJQF8FCIPPLͷҟৗݕܥͳͲ͕͑ͳ͘ͳΔ Ͳͷಓཧ͠ͳ͍ͱ͍͚ͳ͍ͷมΘΒͳ͍ "84Ͱίʔυཧ͠ͳ͍ͳΒ͋·ΓϝϦοτͳͦ͞͏ #JP_Stripes
એ
ڈʢJP_Stripes Connect 2019ʣ HTTPS://CONNECT2019.JPSTRIPES.COM/ #JP_Stripes
ࠓʢJP_Stripes Connect 2020ʣ HTTPS://CONNECT2020.JPSTRIPES.COM/ #JP_Stripes
JP_STRIPES CONNECT 2020 @ೆ੨ࢁ IN 4/18(SAT) SAVE THE DATE !