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
Serverless Frameworkで フロント主導なAPI開発
Search
Hidetaka Okamoto
December 31, 2017
Technology
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Serverless Frameworkで フロント主導なAPI開発
Serverless 勉強会@京都 vol.1
Hidetaka Okamoto
December 31, 2017
More Decks by Hidetaka Okamoto
See All by Hidetaka Okamoto
OpenAI APIで API Changelogを要約してみた話 / chatgpt-osaka-1
hideokamoto
0
690
コミュニティ運営から 中の人に変わって感じたこと
hideokamoto
0
140
Developerが Developer Advocateになった話 / dev-rel-meetup-tokyo-71
hideokamoto
0
380
Jamstack開発者のための App Runner入門
hideokamoto
1
540
WordPressでの webサイト制作2022 / ngk2022s
hideokamoto
0
490
JavaScript(TypeScript)で メディアサイトを インフラから構築する方法 / jsconf-jp-2021
hideokamoto
2
4.4k
AWS上でStripeを利用したアプリをより安全にデプロイする方法 /jaws-pankration-2021
hideokamoto
1
240
Shifter Headlessと Headless WordPressの紹介
hideokamoto
0
2.2k
Stripe & Next.js + AWS Amplify で会員 + 定期課金機能 / JP_Stripes20210903
hideokamoto
7
3.3k
Other Decks in Technology
See All in Technology
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
100
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
150
2026TECHFRESH畢業分享會 - AI 時代的人生存檔點
line_developers_tw
PRO
0
1.3k
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
300
[AWS Summit Japan 2026]迷っているあなたへ_小さな一歩が、やがて自分を助けてくれる
sh_fk2
1
170
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
280
フィジカル版Github Onshapeの紹介
shiba_8ro
0
290
気軽に使える"情報のハブ"としてのNotion活用 〜フロー情報の集積点 と、 Claude Code × Notion AI〜
syucream
1
160
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
170
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
3
590
ザ・データベース、MySQL ~ OSC 2026 Sendai ~
sakaik
0
140
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
270
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Thoughts on Productivity
jonyablonski
76
5.2k
Odyssey Design
rkendrick25
PRO
2
700
Ethics towards AI in product and experience design
skipperchong
2
310
Scaling GitHub
holman
464
140k
Exploring anti-patterns in Rails
aemeredith
3
410
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
610
Code Review Best Practice
trishagee
74
20k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
210
Transcript
4FSWFSMFTT'SBNFXPSLͰ ϑϩϯτओಋͳ"1*։ൃ 4FSWFSMFTTษڧձ!ژWPM 0LBNPUP)JEFUBLB
w 8 P S E # F O D I
ژ Ϟ σ Ϩ ʔ λ w 8 P S E 1 S F T T ຊ ޠ ϑ Υ ʔ ϥϜ ੈ w 8 P S E $ B N Q ,Z P U P ࣮ ߦ ҕ һ )JEFUBLB0LBNPUP %JHJUBMDVCF%FWFMPQFS
w "1*։ൃͱฒߦͨ͠ϑϩϯτ࣮ͭΒ͍ w ʮͭ࣌ؒʯͱʮϞοΫ࣮ʯ͕ಛʹͭΒ͍ w ͩͬͨΒ͔ͬͪ͜Β࡞ͬͪΌ͑ʂ ·ͱΊ
w "1*Λ͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ͚ͭͩ͏Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ΞδΣϯμ
w "1*Λ͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ͚ͭͩ͏Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ΞδΣϯμ
w ্࢘ɿ͜ͷ"1*ͱ࿈ܞͨ͠ػೳ࡞ͬͯ w ࣗɿ"1*ͲΕୟ͚͍͍͔ͬ͢ʁ w ্࢘ɿ·ͩͳ͍ɻ͚Ͳͬͯ w ࣗɿʮʯ લ৬ͱ͔Ͱ͋ͬͨ͜ͱ
w ͳ͍"1*͚ͨͨͳ͍ w ࣗͰ"1*αʔόʔ࡞Δͷେม͗͢Δ w +40/ϕλଧͪͰͱΓ࣮͋͑ͣ͢Δ w ඇಉظॲཧͷߟྀ࿙Εͱ͔ͰόάΛग़͢ ͭΒ͍ͭ
w "1*Λ͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ͚ͭͩ͏Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ΞδΣϯμ
w "1*࡞Δͱ͍͑3VCZPO3BJMTͱ͔༗໊ w 8PSE1SFTTͱ͔%SVQBMͰ࡞ΕΔͬΆ͍ w ͰɺͦΕΛಈ͔͢αʔόʔʁ ࣗͰ"1*αʔόʔΛ࡞Δ͔͠ͳ͍ʁ
l z αʔόʔ͕ඞཁʹͳΔͱ ηοτΞοϓอकͷ ·ͰඞཁʹͳΔ
w "1*Λ͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ͚ͭͩ͏Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ΞδΣϯμ
"NB[PO"1*(BUFXBZ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ
l z "1*Λ؆୯ʹ࡞Δ ΫϥυαʔϏε
"1*ͷαϯϓϧ༻ҙ͞Ε͍ͯΔ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ
4XBHHFSͷఆٛ༰ΛΠϯϙʔτͰ͖Δ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ
"1*Λ(6*͔Β࡞Δ͜ͱ͕Ͱ͖Δ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ
"1*ͷϞοΫ(6*͔Β IUUQTBXTBNB[PODPNKQBQJHBUFXBZ
Ϩεϙϯεͷ+40/Λ͏ͪ͜Ί0, IUUQTBXTBNB[PODPNKQBQJHBUFXBZ
(6*͚ͩͰϞοΫ"1*͕࡞ΕΔ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ
"1*ઐ༻ͷ4%,࡞%-Ͱ͖Δ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ
4%,༻ํ๏͖Ͱ%-Ͱ͖Δ ˞ͨͩ͠ӳޠͷΈ
l z ͋ͱͰ͚ସ͑Δͷ ΊΜͲ͏͔ͩΒ ͦͷ··࣮͍ͨ͠
4FSWFSMFTT'SBNFXPSL IUUQTTFSWFSMFTTDPN
l z "1*ͱόοΫΤϯυΛ ؆୯ʹ࡞ˍσϓϩΠ
ίϚϯυ̏ͭͰΠϯετʔϧ͔ΒσϓϩΠ·Ͱ IUUQTTFSWFSMFTTDPN #Install serverless globally $ npm install serverless -g
# Create a serverless function $ serverless create --template hello-world # Deploy to cloud provider $ serverless deploy # Function deployed! Trigger with live url $ curl http://xyz.amazonaws.com/hello-world
:".-Ͱઃఆ͢ΔͷͰಡΈ͘͢ॻ͖͍͢ (&5IFMMPͱ͍͏"1*͕͜Ε͚ͩͰ࡞Ͱ͖Δ functions: hello: handler: handler.hello events: - http: path:
hello method: get cors: true
ෳͷΫϥυαʔϏεʹରԠ IUUQTTFSWFSMFTTDPN
IUUQTHJUIVCDPNTFSWFSMFTTFYBNQMFT ๛ͳαϯϓϧ
w "1*Λ͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ͚ͭͩ͏Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ΞδΣϯμ
w "1*Λ؆୯ʹ࡞ΕΔαʔϏε͕͋Δ w ศརͳσϓϩΠπʔϧ͋Δ w ͙ͭΒ͍ͳΒɺ͔ͬͪ͜Β࡞Ε͍͍ͷͰ "1*ΛϑϩϯτओಋͰ࡞Δ
4FSWFSMFTT'SBNFXPSL IUUQTTFSWFSMFTTDPN
ඞཁͳ"1*Λ:".-ʹॻ͖ग़͢ (&5IFMMPͱ͍͏"1*͕͜Ε͚ͩͰ࡞Ͱ͖Δ functions: hello: handler: handler.hello events: - http: path:
hello method: get cors: true
/PEFKT1ZUIPOͰϨεϙϯε͚ͩ࡞Δ DBMMCBDL ʹ+40/Λ٧ΊࠐΉ͚ͩ 'use strict'; module.exports.hello = (event, context, callback)
=> { const response = { statusCode: 200, body: JSON.stringify({ message: 'Hello World', }), }; callback(null, response); };
TUBHFΛࢦఆͯ͠σϓϩΠ ʮ͜ͷεςʔδϞοΫͱ͍ͯ͠·͢ʯͱ͔એݴ͠ͱ͘ͱ͍͍͔ # εςʔδຖʹϦιʔεΛ࡞Ͱ͖Δ $ serverless deploy —stage mock #
URLεςʔδ໊ʹԠͯ͡มΘΔ $ curl http://xyz.amazonaws.com/mock/hello-world
l z /PEFKT1ZUIPO ॻ͚Δਓʹ ιʔείʔυΛ͢
όοΫΤϯυͷ։ൃ͕ऴΘΔ·ͰϞοΫΛ͏ # ϑϩϯτͰϞοΫͷAPIΛͬͯ։ൃ͢Δ $ curl http://xyz.amazonaws.com/mock/hello-world # ։ൃ༻ͷεςʔδͰόοΫΤϯυΛ࣮͢Δ $ serverless
deploy —stage development # ࣮͞ΕͨAPI(ؔ)͔Βॱ࣍σϓϩΠ $ serverless deploy function -f hello —stage mock
l z
l z /PEFKT1ZUIPO ॻ͚Δਓʹ ιʔείʔυΛ͢
w "1*Λ͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ͚ͭͩ͏Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ·ͱΊ