Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Serverless Frameworkで フロント主導なAPI開発
Search
Hidetaka Okamoto
December 31, 2017
Technology
490
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
730
コミュニティ運営から 中の人に変わって感じたこと
hideokamoto
0
150
Developerが Developer Advocateになった話 / dev-rel-meetup-tokyo-71
hideokamoto
0
400
Jamstack開発者のための App Runner入門
hideokamoto
1
560
WordPressでの webサイト制作2022 / ngk2022s
hideokamoto
0
500
JavaScript(TypeScript)で メディアサイトを インフラから構築する方法 / jsconf-jp-2021
hideokamoto
2
4.4k
AWS上でStripeを利用したアプリをより安全にデプロイする方法 /jaws-pankration-2021
hideokamoto
1
250
Shifter Headlessと Headless WordPressの紹介
hideokamoto
0
2.3k
Stripe & Next.js + AWS Amplify で会員 + 定期課金機能 / JP_Stripes20210903
hideokamoto
7
3.3k
Other Decks in Technology
See All in Technology
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
210
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
490
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
380
Codex概要
ymiya55
0
420
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
130
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
330
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
260
[2026 Oracle Technical Deep Dive] AI時代のアプリケーションを支えるCloud NativeとJava EEモダナイゼーション (2026年9月17日開催)
oracle4engineer
PRO
0
120
形式手法を使って仕様をコーディングしよう
mikanichinose
0
180
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
150
予測不能な実行エージェントを安全にサクッと試せるサンドボックス環境の話
sansantech
PRO
0
120
SDDの運用にめげずに向き合った話
sansantech
PRO
1
130
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
エンジニアに許された特別な時間の終わり
watany
109
250k
A Modern Web Designer's Workflow
chriscoyier
699
190k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
510
The Pragmatic Product Professional
lauravandoore
37
7.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Paper Plane
katiecoart
PRO
4
54k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
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 ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ·ͱΊ