Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
マルチクラウドでいろいろ「がおって」みた / serverless-200125
gaomar
January 25, 2020
Technology
1
290
マルチクラウドでいろいろ「がおって」みた / serverless-200125
Serverless Meetup Kobe #1登壇資料です。
https://serverless.connpass.com/event/157159/
gaomar
January 25, 2020
Tweet
Share
More Decks by gaomar
See All by gaomar
gaomar
0
89
gaomar
0
310
gaomar
0
120
gaomar
0
89
gaomar
0
91
gaomar
2
160
gaomar
0
400
gaomar
0
230
gaomar
0
180
Other Decks in Technology
See All in Technology
michigari
0
250
htomine
0
170
jaguar_imo
0
120
lain21
14
5.3k
akakou
2
390
caori_t
0
160
katsumataryo
3
830
chipstar_light
0
490
surumegohan
1
180
nnstt1
2
120
clustervr
PRO
0
170
akabekobeko
0
230
Featured
See All Featured
robhawkes
53
2.9k
hannesfritz
29
980
cromwellryan
104
6.3k
jonyablonski
21
1.3k
philhawksworth
192
17k
sugarenia
233
880k
trallard
15
830
bkeepers
PRO
54
4.3k
denniskardys
220
120k
brad_frost
157
6.5k
chrislema
231
16k
holman
462
280k
Transcript
TFSWFSMFTTLPCF ϚϧνΫϥυͰ͍Ζ͍Ζ ʮ͕͓ͬͯʯΈͨ M5
TFSWFSMFTTLPCF ࣗݾհʢ͕͓·Δʣ ॴଐɿגࣜձࣾΞΠΤϯλʔɹେࡕࢧళ ɹɹɹ3%ɹೖࣾ ɹɹɹεϚʔτεϐʔΧʔΤόϯδΣϦετ ɹɹɹ-*/&"1*&YQFSUʢʙʣ ɹɹɹ"MFYB$IBNQJPOʢʙʣ ۀɿ"5-BCPɾ͕͓·Δक़ओ࠵ ɹɹɹεϚʔτεϐʔΧʔݚڀ։ൃ ɹɹɹ31"ݚڀ։ൃ
ߴഅɹయ !HBPNBS ͖ͳݴ༿ɿͶ͐$MPWB ͔ͨ͏·ɹͻΖͷΓ
TFSWFSMFTTLPCF εϚʔτεϐʔΧʔΞϓϦ։ൃೖ େධൃചதʂ
TFSWFSMFTTLPCF ຊ
TFSWFSMFTTLPCF ʮ͕͓ͬͯΔʯͱ ͋Γͱ͋ΒΏΔΫϥυαʔϏεΛͱʹ͔ͪ͘͝Ό·ͥʹͯ͠ Կ͔ͩྑ͔͘Βͳ͍͚Ͳɺ ࠷ऴతʹಈ͍ͯΈΜͳϋοϐʔʹͳΕΔ͜ͱ ཁ͢Δʹນͷหతͳҙຯ߹͍
TFSWFSMFTTLPCF "MFYB$IBNQJPOͷϖʔδʹ("͞Εͨʂ
TFSWFSMFTTLPCF ͕͓ͬͯΔͦͷ
TFSWFSMFTTLPCF ౙٳΈͰՋͩͬͨͷͰ 1PXFS"VUPNBUFͬͯ -*/&#PUΛ̏ͭ࡞ͬͯΈͨ
TFSWFSMFTTLPCF 1PXFS"VUPNBUFͱ
TFSWFSMFTTLPCF 0$3#PU $PNQVUFS7JTJPOΛར༻ͯ͠-*/&ʹ্͛ͨը૾ͷ தʹ͋ΔจࣈྻΛೝࣝͯͦ͠ͷ݁ՌΛฦ͢ɻ ೝࣝߴΊ͕ͩɺखॻ͖จࣈͷೝ͕͔ࣝͳΓ Լͨ͠
TFSWFSMFTTLPCF ༁#PU 5FYU5SBOTMBUPSΛར༻ͯ͠#PUʹ͛ͨຊޠΛ ӳޠʹ༁ͯ͠ฦͯ͘͠ΕΔɻ Ұ࣌ظʹͳͬͨࡖϚοεϧΛࢼͨ͠Βͬͱ ΧΦεͳ͜ͱʹͳ͍ͬͯͨ͆
TFSWFSMFTTLPCF $VTUPN7JTJPOΛར༻ͯ͠#PUʹ͛ͨը૾͔Β ࢦఆͨ͠λά໊Λฦ͢ɻ ίʔϯϑϨʔΫͷը૾Λ͛ΔͱίʔϯϑϨʔΫ ͔Ͳ͏͔ఆͯ͘͠ΕΔ ྨث#PU
TFSWFSMFTTLPCF (PPHMFͷ5FBDIBCMF.BDIJOF͕Ϡό͍ʂ
TFSWFSMFTTLPCF
TFSWFSMFTTLPCF ͜ΕΛͬͨϋϯζΦϯΛདྷ݄ߦ͍·͆͢ ຬһޚྱʂ
TFSWFSMFTTLPCF 0$3#PU ༁#PU ྨث#PU
TFSWFSMFTTLPCF ͕͓ͬͯΔͦͷ M5
TFSWFSMFTTLPCF #MVFUPPUIൃ৴ػͰ-*/&ΞϓϦΛܦ༝ͯ͠ ࢦఆͨ͠8FCIPPLઌʹ͍ۙͮͨਓͷใΛ ඈ͢͜ͱ͕Ͱ͖Δ
TFSWFSMFTTLPCF M5 .4UJDL$ ɾ&41ଂ ɾY5'5Χϥʔӷথ ɾN"I-J1PόοςϦʔ ɾ(SPWFϙʔτ ɾ.#ϑϥογϡϝϞϦ ɾ࣠ηϯα ɾ=
TFSWFSMFTTLPCF -*/&4JNQMF#FBDPOͱ -*/&4JNQMF#FBDPOͱɺ-*/&#PU։ൃऀ͚ͷϏʔίϯ σόΠε༷Ͱ͢ɻ-*/&4JNQMF#FBDPO#MVFUPPUI -PX&OFSHZ ҎԼɺʮ#-&ʯͱ͍͏ ͷ༷ʹͱ͍͓ͮͯ Γɺ൚༻ͷσόΠεͰ-*/&#FBDPOͷαʔϏεΛར༻͢Δ͜ ͱΛՄೳͱ͠·͢ɻ IUUQTHJUIVCDPNMJOFMJOFTJNQMFCFBDPOCMPCNBTUFS3&"%.&KBNE
TFSWFSMFTTLPCF ͔͜͜Β-*/&#PUͱඥ͚ͯ*%Λൃߦ͢Δ͚ͩ IUUQTNBOBHFSMJOFCJ[CFBDPOSFHJTUFS
TFSWFSMFTTLPCF -*/&#FBDPOΛ༗ޮԽ
TFSWFSMFTTLPCF Ͱ͖ͨͷͪ͜Β
None
TFSWFSMFTTLPCF ΞʔΩςΫνϟ M5 ʗडͨ͠Αʘ ʘ͕͓·Δ͕དྷͨΑʗ 66*% FOUFS 66*%
TFSWFSMFTTLPCF ͕͓ͬͯΔͦͷ
TFSWFSMFTTLPCF ͱ 23ίʔυܾࡁΦϯϥΠϯγϣοϐϯά ʹͬͨΓͰ͖ΔεϚϗܾࡁαʔϏε །Ұ։ൃ༻4%,͕ެ։͞Ε͓ͯΓɺ ୭Ͱ։ൃΛ࢝ΊΔ͜ͱ͕Ͱ͖Δ
TFSWFSMFTTLPCF 31"πʔϧͷҰछ ࡞ۀۀΛࣗಈԽ͢ΔϩϘοτΛ։ൃ͢Δπʔϧ
TFSWFSMFTTLPCF ΦʔέετϨʔλʔ͕͋Δ
TFSWFSMFTTLPCF 6J1BUI0SDIFTUSBUPSͱ ɾδϣϒͷεέδϡʔϧཧ ɾ౷߹ӡ༻ཧ ɾ෦౷੍ ɾηΩϡϦςΟରࡦ ɾॊೈͳ֦ுੑ
TFSWFSMFTTLPCF ॊೈͳ֦ுੑ ɾ31"ͷཧػೳΛ3&45"1*ͱͯ͠ެ։ ɾϩϘͷىಈࢦ͕ࣔ؆୯ʹͰ͖Δ ɾ֎෦ͷ༷ʑͳαʔϏεͱ࿈ܞ͢Δ͜ͱ͕Մೳʂ
TFSWFSMFTTLPCF Ͱ͖ͨͷͪ͜Β
TFSWFSMFTTLPCF IUUQTZPVUVCF:#7TSMH
TFSWFSMFTTLPCF ΞʔΩςΫνϟ ΦʔέετϨʔλʔ ʘܾࡁใೖྗʂʗ -*/&1BZ ܾࡁ (JU)VC
TFSWFSMFTTLPCF -*''ʢ-*/&'POUFOE'SBNFXPSLʣ -*/&ΞϓϦͰಈ࡞͢ΔΣϒΞϓϦͷϓϥοτϑΥʔϜ ϢʔβʔใΛ׆༻ͨ͠ػೳΛఏڙͨ͠Γɺ ϢʔβʔͷΘΓʹϝοηʔδΛૹ৴ͨ͠ΓͰ͖·͢ ˞-*''ܦ༝Ͱ-*/&ͷϓϩϑΟʔϧ͕औಘՄೳ ˞-*''W͔Β8FCܦ༝Ͱར༻Մೳʹ
TFSWFSMFTTLPCF 6J1BUIϑϩʔਤ ύϒϦογϡͯ͠ ΦʔέετϨʔλʔʹΞοϓ͢Δ
TFSWFSMFTTLPCF ΦʔέετϨʔλʔʹϩϘ͕Ξοϓ͞ΕΔ όʔδϣϯཧ͕Մೳʂ
TFSWFSMFTTLPCF ͔͜͜Β։ൃΑΓͳ
TFSWFSMFTTLPCF -*/&1BZܾࡁॲཧ7VFKT // ܾࡁ༧ let options = { productName: "ϩοΫղআ",
amount: 1, // ֹۚʢ͜ͷ߹1ԁʣ currency: "JPY", // ຊԁ orderId: uuid(), confirmUrl: process.env.VUE_APP_LINE_PAY_CONFIRM_URL } pay.reserve(options).then((response) => { let reservation = options reservation.transactionId = response.info.transactionId reservation.paymentUrl = response.info.paymentUrl.web callback(null, { statusCode: 200, body: JSON.stringify(reservation), headers: headers }) }) ɾBNPVOUɿֹۚ ɾPSEFS*Eɿܾࡁཧ൪߸ ɾDPOpSN6SMɿܾࡁޙભҠ63- ɾSFTFSWFɿॲཧ࣮ߦ IUUQTQBZMJOFNFKQEFWFMPQFSTBQJTPOMJOF"QJT MPDBMFKB@+1 ܾࡁ༧
TFSWFSMFTTLPCF -*/&1BZܾࡁॲཧ7VFKT // ܾࡁॲཧ const transactionId = params.get('transactionId') const reservations
= JSON.parse(params.get('reservations')) let confirmation = { transactionId: transactionId, amount: reservations.amount, currency: reservations.currency } pay.confirm(confirmation).then((response) => { callback(null, { statusCode: 200, body: 'ܾࡁྃ͠·ͨ͠ʂ', headers: headers }) }) ɾUSBOTBDUJPO*Eɿܾࡁ൪߸ ɾBNPVOUɿܾࡁ࣌ͷֹۚ ɾDVSSFODZɿܾࡁ࣌ͷຊԁ ɾDPOpSNɿॲཧ࣮ߦ IUUQTQBZMJOFNFKQEFWFMPQFSTBQJTPOMJOF"QJT MPDBMFKB@+1 ܾࡁ֬ೝ
TFSWFSMFTTLPCF ࣮ݱ͢ΔͨΊͷεςοϓ͕໘͍X ɾΞΫηετʔΫϯΛൃߦ͢Δ ɾαʔϏεΠϯελϯεࣝผࢠऔಘ ɾ3FMFBTF,FZΛऔಘ͢Δ ɾδϣϒʢϩϘʣΛ࣮ߦ͢Δ
TFSWFSMFTTLPCF ֎෦αʔϏεͱ࿈ܞ͢ΔͨΊʹඞཁͳ τʔΫϯ3FMFBTF,FZΛऔಘ͢Δ
TFSWFSMFTTLPCF ΞΫηετʔΫϯΛൃߦ͢Δ IUUQTEPDTVJQBUIDPNPSDIFTUSBUPSWSFGFSFODFTFDUJPOHFUUJOHSFGSFTIUPLFO ֤छτʔΫϯΛϝϞ
TFSWFSMFTTLPCF τʔΫϯͷ༗ޮ࣌ؒ ࣌ؒͰΕ·͢
TFSWFSMFTTLPCF ͦΕҎ֎ʹෳͷ"1*Λୟ͔ͳ͍ͱ͍͚ͳ͍PS[
TFSWFSMFTTLPCF ·ͱΊ
TFSWFSMFTTLPCF ɾ1PXFS"VUPNBUFϊϯίʔςΟϯάͰ৭ʑͰ͖Δ ɾ͓ख࣋ͪͷσόΠεΛ-*/&#FBDPOԽՄೳ ɾ-*/&1BZ།Ұ։ൃ4%,͕ެ։͞Ε͍ͯΔ ɾ4UBSU+PCTؔͰϩϘΛ࣮ߦͰ͖Δ ɾൃߦͨ͠τʔΫϯͷ༗ޮ࣌ؒ࣌ؒ ɾ͍ΖΜͳ࿈ܞָ͍͠ʘ ?P? ʗ
TFSWFSMFTTLPCF ࠂ
TFSWFSMFTTLPCF ɹ-*/&ͷνϟοτϘοτΛ࡞Ζ͏!͋ͷϋϧΧε'
TFSWFSMFTTLPCF ɹ31"ษڧˍ-5ձʂ31"-5ϋϯζΦϯࢧ෦WPM!େࡕ
TFSWFSMFTTLPCF εϚʔτεϐʔΧʔΛ༡ͼ͓ͨ͢ձ େࡕ ໊ݹ ౦ژ ̏ڌಉ࣌தܧ
TFSWFSMFTTLPCF 7PJDF$PO+BQBO ຊ࠷େڃͷ76*ɾεϚʔτεϐʔΧʔΠϕϯτ IUUQTWPJDFDPOKBQBOBBKVHKQ
TFSWFSMFTTLPCF =ׂҾΫʔϙϯίʔυ vcj2020kobe
TFSWFSMFTTLPCF ϦΞϧλΠϜΞϯέʔτ
TFSWFSMFTTLPCF ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ M5