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
190
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
570
コミュニティ運営から 中の人に変わって感じたこと
hideokamoto
0
79
Developerが Developer Advocateになった話 / dev-rel-meetup-tokyo-71
hideokamoto
0
330
Jamstack開発者のための App Runner入門
hideokamoto
1
480
WordPressでの webサイト制作2022 / ngk2022s
hideokamoto
0
430
JavaScript(TypeScript)で メディアサイトを インフラから構築する方法 / jsconf-jp-2021
hideokamoto
2
4.2k
AWS上でStripeを利用したアプリをより安全にデプロイする方法 /jaws-pankration-2021
hideokamoto
1
190
Shifter Headlessと Headless WordPressの紹介
hideokamoto
0
1.8k
Stripe & Next.js + AWS Amplify で会員 + 定期課金機能 / JP_Stripes20210903
hideokamoto
7
3.1k
Other Decks in Programming
See All in Programming
XSLTで作るBrainfuck処理系
makki_d
0
210
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
330
「ElixirでIoT!!」のこれまでとこれから
takasehideki
0
370
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
170
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
570
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
110
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
260
Deep Dive into ~/.claude/projects
hiragram
7
1.2k
Effect の双対、Coeffect
yukikurage
5
1.4k
GoのGenericsによるslice操作との付き合い方
syumai
3
680
FormFlow - Build Stunning Multistep Forms
yceruto
1
190
Select API from Kotlin Coroutine
jmatsu
1
190
Featured
See All Featured
Speed Design
sergeychernyshev
32
1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
Producing Creativity
orderedlist
PRO
346
40k
The Language of Interfaces
destraynor
158
25k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Raft: Consensus for Rubyists
vanstee
140
7k
For a Future-Friendly Web
brad_frost
179
9.8k
Balancing Empowerment & Direction
lara
1
360
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Code Review Best Practice
trishagee
68
18k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
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 !