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
server⚡lessを触る
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
y-katsumi
August 12, 2017
Technology
430
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
server⚡lessを触る
ARCANA Meetup #27
https://s-arcana.connpass.com/event/62481/
y-katsumi
August 12, 2017
More Decks by y-katsumi
See All by y-katsumi
Hack Day Exhibition 2017で発表したスライド
ykatsumi
0
50
第19回社内勉強会
ykatsumi
0
350
第12回社内勉強会
ykatsumi
0
470
社内勉強会発表
ykatsumi
0
900
Other Decks in Technology
See All in Technology
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
120
大型犬好きによるPugの紹介
yamanoku
1
160
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
その Valkey 使いこなしていますか?
onk
PRO
5
1.5k
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
1
150
分析AIエージェントを育てる、動く環境を育てる
codatum
1
1.1k
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
340
しろおびから始める!ログ活用の第一歩
shumei_ito
0
950
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
6
4.9k
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
430
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
290
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
490
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
560
Building Applications with DynamoDB
mza
96
7.2k
Docker and Python
trallard
47
4.2k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
Documentation Writing (for coders)
carmenintech
77
5.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
520
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
710
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
First, design no harm
axbom
PRO
2
1.3k
Transcript
server⚡lessΛ৮Δ 2017/08/01 ελδΦɾΞϧΧφ ͔ͭΈɹΏ͖ͻΖ
SERVER⚡LESS FRAMEWORK https://serverless.com/
• AWS Lambda, Google CloudFunctionsͱ͔Λ CLIͰ؆୯ʹ͑ͪΌ͏Αʙ SERVER⚡LESS FRAMEWORK
ରԠ͍ͯ͠ΔαʔϏε
AWSΛࢼͨ͠
ͱΓ͋͑ͣexampleࢼͯ͠ΈΔ https://github.com/pmuens/serverless-crud
$ serverless deploy Serverless: Packaging service... Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3... Serverless: Uploading artifacts... Serverless: Uploading service .zip file to S3 (22.24 MB)... Serverless: Validating template... Serverless: Updating Stack... Serverless: Checking Stack update progress... ........................................................................................................................... Serverless: Stack update finished... Service Information service: serverless-crud stage: dev region: ap-northeast-1 api keys: None endpoints: POST - https://▪▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos GET - https://▪▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos GET - https://▪▪▪▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos/{id} PUT - https://▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos/{id} DELETE - https://▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos/{id} GET - https://▪▪▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos/show functions: create: serverless-crud-dev-create readAll: serverless-crud-dev-readAll readOne: serverless-crud-dev-readOne update: serverless-crud-dev-update delete: serverless-crud-dev-delete showAll: serverless-crud-dev-showAll
$ serverless deploy Serverless: Packaging service... Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3... Serverless: Uploading artifacts... Serverless: Uploading service .zip file to S3 (22.24 MB)... Serverless: Validating template... Serverless: Updating Stack... Serverless: Checking Stack update progress... ........................................................................................................................... Serverless: Stack update finished... Service Information service: serverless-crud stage: dev region: ap-northeast-1 api keys: None endpoints: POST - https://▪▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos GET - https://▪▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos GET - https://▪▪▪▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos/{id} PUT - https://▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos/{id} DELETE - https://▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos/{id} GET - https://▪▪▪▪▪▪▪▪▪▪▪.execute-api.ap-northeast-1.amazonaws.com/dev/todos/show functions: create: serverless-crud-dev-create readAll: serverless-crud-dev-readAll readOne: serverless-crud-dev-readOne update: serverless-crud-dev-update delete: serverless-crud-dev-delete showAll: serverless-crud-dev-showAll curlͱ͔Ͱୟ͚Δ
$ curl -X POST https://▪▪▪▪▪▪▪▪▪▪.execute-api.ap- northeast-1.amazonaws.com/dev/todos --data '{ "column1" :
"data1","column2": "data2" }' {"column1":"data1","column2":"data2","id":"a6af65d0-7547-11e7- a20a-6bbb2a3737e3","updatedAt":1501433625774} $ curl -X POST https://▪▪▪▪▪▪▪▪▪▪.execute-api.ap- northeast-1.amazonaws.com/dev/todos --data '{ "column1" : "data2","column2": "data3" }' {"column1":"data2","column2":"data3","id":"b8a924b0-7547-11e7- a20a-6bbb2a3737e3","updatedAt":1501433655931} σʔλొ
$ curl -X POST https://▪▪▪▪▪▪▪▪▪▪.execute-api.ap- northeast-1.amazonaws.com/dev/todos --data '{ "column1" :
"data1","column2": "data2" }' {"column1":"data1","column2":"data2","id":"a6af65d0-7547-11e7- a20a-6bbb2a3737e3","updatedAt":1501433625774} $ curl -X POST https://▪▪▪▪▪▪▪▪▪▪.execute-api.ap- northeast-1.amazonaws.com/dev/todos --data '{ "column1" : "data2","column2": "data3" }' {"column1":"data2","column2":"data3","id":"b8a924b0-7547-11e7- a20a-6bbb2a3737e3","updatedAt":1501433655931} σʔλొ
$ curl -X GET https://▪▪▪▪▪▪▪▪▪▪▪▪.execute-api.ap- northeast-1.amazonaws.com/dev/todos [{“id":"a6af65d0-7547-11e7- a20a-6bbb2a3737e3","column1":"data1","updatedAt": 1501433625774,"column2":"data2"}, {"id":"b8a924b0-7547-11e7-
a20a-6bbb2a3737e3","column1":"data2","updatedAt": 1501433655931,"column2":"data3"}] σʔλऔಘ ͖ͬ͞ొͨ͠σʔλ͕औΕͯΔ
AWS্Ͱ
AWS - DynamoDB
AWS - Lambda
AWS - API Gateway
ͪͳΈʹ
handler.js module.exports.readAll = (event, context, callback) => { todosReadAll(event, (error,
result) => { const response = { statusCode: 200, headers: { "Access-Control-Allow-Origin" : "*" }, body: JSON.stringify(result), }; context.succeed(response); }); };
Ճ͢Δͱ module.exports.showAll = (event, context, callback) => { todosShowAll(event, (error,
result) => { const response = { statusCode: 200, headers: { "Access-Control-Allow-Origin" : "*" ,"Content-Type": "text/html" }, body: result }; context.succeed(response); }); };
json͚ͩ͡Όͳ͘html͍͚Δ https://▪▪▪▪▪▪▪.execute-api.ap- northeast-1.amazonaws.com/dev/todos/show
ࢥͬͨ͜ͱ
ࢥͬͨ͜ͱ 1. ΘΕΔճ͕গͳ͍ը໘ΛLambdaͰ࡞Ε ͨΒEC2ΑΓ͓ಘͳؾ͕͢Δɻ 2. deploy؆୯ɻεέʔϧΞτউखʹͬͯ͘ ΕΔΒ͍͠͠ɻ
ࢼͯ͠Έͯ٧·ͬͨ͜ͱ
࠶σϓϩΠͲ͏͢ΔΜͩΖ͏ʁ • ιʔεΛߋ৽ͯ͠αʔόʹࡌͤΔࡍɺ dynamodbআ͠ͳ͍ͱͩΊɻ • ໘ͩ͠ɺdynamodbͬͯΔͭͦͷ· ·ͬͯཉ͍͠ɻ
࠶σϓϩΠͲ͏͢ΔΜͩΖ͏ʁ • ιʔεΛߋ৽ͯ͠αʔόʹࡌͤΔࡍɺ dynamodbআ͠ͳ͍ͱͩΊɻ • ໘ͩ͠ɺdynamodbͬͯΔͭͦͷ· ·ͬͯཉ͍͠ɻ • ͳΜͱ͔Ͱ͖ΔΜͩΖ͏͚Ͳɺ࣌ؒͳͯ͘ௐ ΒΕͳ͔ͬͨɻɻɻ
αʔό্ͷσόοάͲ͏͢Δʁ • serverless-offlineͬͯϩʔΧϧͰ։ൃͰ͖Δ • αʔόʹ͚ͬͨ࣌ʹΤϥʔ͕ग़ΔͱࠔΔɻɻ
αʔό্ͷσόοάͲ͏͢Δʁ • serverless-offlineͬͯϩʔΧϧͰ։ൃͰ͖Δ • αʔόʹ͚ͬͨ࣌ʹΤϥʔ͕ग़ΔͱࠔΔɻɻ • ͳΜͱ͔Ͱ͖ΔΜͩΖ͏͚Ͳɺ࣌ؒͳͯ͘ௐ ΒΕͳ͔ͬͨɻɻɻ
Ҏ্Ͱ͢