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
0
420
Serverless Frameworkで フロント主導なAPI開発
Serverless 勉強会@京都 vol.1
Hidetaka Okamoto
December 31, 2017
Tweet
Share
More Decks by Hidetaka Okamoto
See All by Hidetaka Okamoto
OpenAI APIで API Changelogを要約してみた話 / chatgpt-osaka-1
hideokamoto
0
620
コミュニティ運営から 中の人に変わって感じたこと
hideokamoto
0
91
Developerが Developer Advocateになった話 / dev-rel-meetup-tokyo-71
hideokamoto
0
340
Jamstack開発者のための App Runner入門
hideokamoto
1
490
WordPressでの webサイト制作2022 / ngk2022s
hideokamoto
0
450
JavaScript(TypeScript)で メディアサイトを インフラから構築する方法 / jsconf-jp-2021
hideokamoto
2
4.2k
AWS上でStripeを利用したアプリをより安全にデプロイする方法 /jaws-pankration-2021
hideokamoto
1
200
Shifter Headlessと Headless WordPressの紹介
hideokamoto
0
1.9k
Stripe & Next.js + AWS Amplify で会員 + 定期課金機能 / JP_Stripes20210903
hideokamoto
7
3.2k
Other Decks in Technology
See All in Technology
AWS re:Invent 2025事前勉強会資料 / AWS re:Invent 2025 pre study meetup
kinunori
0
1k
激動の時代を爆速リチーミングで乗り越えろ
sansantech
PRO
1
230
SOTA競争から人間を超える画像認識へ
shinya7y
0
670
SREのキャリアから経営に近づく - Enterprise Risk Managementを基に -
shonansurvivors
1
690
어떤 개발자가 되고 싶은가?
arawn
1
380
OPENLOGI Company Profile for engineer
hr01
1
46k
JAWS UG AI/ML #32 Amazon BedrockモデルのライフサイクルとEOL対応/How Amazon Bedrock Model Lifecycle Works
quiver
1
620
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
140
2025/10/27 JJUGナイトセミナー WildFlyとQuarkusの 始め方
megascus
0
110
可観測性は開発環境から、開発環境にもオブザーバビリティ導入のススメ
layerx
PRO
4
2.6k
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.6k
マルチエージェントのチームビルディング_2025-10-25
shinoyamada
0
240
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Code Review Best Practice
trishagee
72
19k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
What's in a price? How to price your products and services
michaelherold
246
12k
Balancing Empowerment & Direction
lara
5
710
Agile that works and the tools we love
rasmusluckow
331
21k
Building Adaptive Systems
keathley
44
2.8k
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 ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ·ͱΊ