Slide 1

Slide 1 text

4FSWFSMFTT'SBNFXPSLͰ ϑϩϯτओಋͳ"1*։ൃ 4FSWFSMFTTษڧձ!ژ౎WPM 0LBNPUP)JEFUBLB

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

w "1*։ൃͱฒߦͨ͠ϑϩϯτ࣮૷ͭΒ͍ w ʮ଴ͭ࣌ؒʯͱʮϞοΫ࣮૷ʯ͕ಛʹͭΒ͍ w ͩͬͨΒ͔ͬͪ͜Β࡞ͬͪΌ͑ʂ ·ͱΊ

Slide 4

Slide 4 text

w "1*Λ࢖͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ଴͚ͭͩ͸΋͏΍Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ΞδΣϯμ

Slide 5

Slide 5 text

w "1*Λ࢖͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ଴͚ͭͩ͸΋͏΍Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ΞδΣϯμ

Slide 6

Slide 6 text

w ্࢘ɿ͜ͷ"1*ͱ࿈ܞͨ͠ػೳ࡞ͬͯ w ࣗ෼ɿ"1*ͲΕୟ͚͹͍͍͔ͬ͢ʁ w ্࢘ɿ·ͩͳ͍ɻ͚Ͳ΍ͬͯ w ࣗ෼ɿʮʯ લ৬ͱ͔Ͱ͋ͬͨ͜ͱ

Slide 7

Slide 7 text

w ͳ͍"1*͸͚ͨͨͳ͍ w ࣗ෼Ͱ"1*αʔόʔ࡞Δͷ͸େม͗͢Δ w +40/ϕλଧͪͰͱΓ࣮͋͑ͣ૷͢Δ w ඇಉظॲཧͷߟྀ࿙Εͱ͔ͰόάΛग़͢ ͭΒ͍΍ͭ

Slide 8

Slide 8 text

w "1*Λ࢖͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ଴͚ͭͩ͸΋͏΍Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ΞδΣϯμ

Slide 9

Slide 9 text

w "1*࡞Δͱ͍͑͹3VCZPO3BJMTͱ͔༗໊ w 8PSE1SFTTͱ͔%SVQBMͰ΋࡞ΕΔͬΆ͍ w ͰɺͦΕΛಈ͔͢αʔόʔ͸ʁ ࣗ෼Ͱ"1*αʔόʔΛ࡞Δ͔͠ͳ͍ʁ

Slide 10

Slide 10 text

l z αʔόʔ͕ඞཁʹͳΔͱ ηοτΞοϓ΍อकͷ ޻਺·ͰඞཁʹͳΔ

Slide 11

Slide 11 text

w "1*Λ࢖͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ଴͚ͭͩ͸΋͏΍Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ΞδΣϯμ

Slide 12

Slide 12 text

"NB[PO"1*(BUFXBZ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ

Slide 13

Slide 13 text

l z "1*Λ؆୯ʹ࡞Δ Ϋϥ΢υαʔϏε

Slide 14

Slide 14 text

"1*ͷαϯϓϧ΋༻ҙ͞Ε͍ͯΔ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ

Slide 15

Slide 15 text

4XBHHFSͷఆٛ಺༰ΛΠϯϙʔτͰ͖Δ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ

Slide 16

Slide 16 text

"1*Λ(6*͔Β࡞Δ͜ͱ͕Ͱ͖Δ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ

Slide 17

Slide 17 text

"1*ͷϞοΫ΋(6*͔Β IUUQTBXTBNB[PODPNKQBQJHBUFXBZ

Slide 18

Slide 18 text

Ϩεϙϯεͷ+40/Λ͏ͪ͜Ί͹0, IUUQTBXTBNB[PODPNKQBQJHBUFXBZ

Slide 19

Slide 19 text

(6*͚ͩͰϞοΫ"1*͕࡞ΕΔ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ

Slide 20

Slide 20 text

"1*ઐ༻ͷ4%,΋࡞੒%-Ͱ͖Δ IUUQTBXTBNB[PODPNKQBQJHBUFXBZ

Slide 21

Slide 21 text

4%,͸࢖༻ํ๏෇͖Ͱ%-Ͱ͖Δ ˞ͨͩ͠ӳޠͷΈ

Slide 22

Slide 22 text

l z ͋ͱͰ෇͚ସ͑Δͷ ΊΜͲ͏͔ͩΒ ͦͷ··࣮૷͍ͨ͠

Slide 23

Slide 23 text

4FSWFSMFTT'SBNFXPSL IUUQTTFSWFSMFTTDPN

Slide 24

Slide 24 text

l z "1*ͱόοΫΤϯυΛ ؆୯ʹ࡞੒ˍσϓϩΠ

Slide 25

Slide 25 text

ίϚϯυ̏ͭͰΠϯετʔϧ͔ΒσϓϩΠ·Ͱ 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

Slide 26

Slide 26 text

:".-Ͱઃఆ͢ΔͷͰಡΈ΍͘͢ॻ͖΍͍͢ (&5IFMMPͱ͍͏"1*͕͜Ε͚ͩͰ࡞੒Ͱ͖Δ functions: hello: handler: handler.hello events: - http: path: hello method: get cors: true

Slide 27

Slide 27 text

ෳ਺ͷΫϥ΢υαʔϏεʹରԠ IUUQTTFSWFSMFTTDPN

Slide 28

Slide 28 text

IUUQTHJUIVCDPNTFSWFSMFTTFYBNQMFT ๛෋ͳαϯϓϧ

Slide 29

Slide 29 text

w "1*Λ࢖͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ଴͚ͭͩ͸΋͏΍Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ΞδΣϯμ

Slide 30

Slide 30 text

w "1*Λ؆୯ʹ࡞ΕΔαʔϏε͕͋Δ w ศརͳσϓϩΠπʔϧ΋͋Δ w ଴͙ͭΒ͍ͳΒɺ͔ͬͪ͜Β࡞Ε͹͍͍ͷͰ͸ "1*ΛϑϩϯτओಋͰ࡞Δ

Slide 31

Slide 31 text

4FSWFSMFTT'SBNFXPSL IUUQTTFSWFSMFTTDPN

Slide 32

Slide 32 text

ඞཁͳ"1*Λ:".-ʹॻ͖ग़͢ (&5IFMMPͱ͍͏"1*͕͜Ε͚ͩͰ࡞੒Ͱ͖Δ functions: hello: handler: handler.hello events: - http: path: hello method: get cors: true

Slide 33

Slide 33 text

/PEFKT΍1ZUIPOͰϨεϙϯε͚ͩ࡞Δ DBMMCBDL ʹ+40/Λ٧ΊࠐΉ͚ͩ 'use strict'; module.exports.hello = (event, context, callback) => { const response = { statusCode: 200, body: JSON.stringify({ message: 'Hello World', }), }; callback(null, response); };

Slide 34

Slide 34 text

TUBHFΛࢦఆͯ͠σϓϩΠ ʮ͜ͷεςʔδ͸ϞοΫͱͯ͠࢖͍·͢ʯͱ͔એݴ͠ͱ͘ͱ͍͍͔΋ # εςʔδຖʹϦιʔεΛ࡞੒Ͱ͖Δ $ serverless deploy —stage mock # URL΋εςʔδ໊ʹԠͯ͡มΘΔ $ curl http://xyz.amazonaws.com/mock/hello-world

Slide 35

Slide 35 text

l z /PEFKT1ZUIPO ॻ͚Δਓʹ ιʔείʔυΛ౉͢

Slide 36

Slide 36 text

όοΫΤϯυͷ։ൃ͕ऴΘΔ·ͰϞοΫΛ࢖͏ # ϑϩϯτͰ͸ϞοΫͷAPIΛ࢖ͬͯ։ൃ͢Δ $ curl http://xyz.amazonaws.com/mock/hello-world # ։ൃ༻ͷεςʔδͰόοΫΤϯυΛ࣮૷͢Δ $ serverless deploy —stage development # ࣮૷͞ΕͨAPI(ؔ਺)͔Βॱ࣍σϓϩΠ $ serverless deploy function -f hello —stage mock

Slide 37

Slide 37 text

l z ໰୊఺

Slide 38

Slide 38 text

l z /PEFKT1ZUIPO ॻ͚Δਓʹ ιʔείʔυΛ౉͢

Slide 39

Slide 39 text

w "1*Λ࢖͏αʔϏε։ൃͷͭΒΈ w ͳ͍"1*Λ଴͚ͭͩ͸΋͏΍Ί͍ͨ w "844FSWFSMFTT'8Ͱ࡞ΔϞοΫ"1* w ϞοΫۦಈͰϑϩϯτओಋͷ։ൃΛ ·ͱΊ