Upgrade to Pro — share decks privately, control downloads, hide ads and more …

マルチクラウドでいろいろ「がおって」みた / serverless-200125

gaomar
January 25, 2020

マルチクラウドでいろいろ「がおって」みた / serverless-200125

Serverless Meetup Kobe #1登壇資料です。
https://serverless.connpass.com/event/157159/

gaomar

January 25, 2020
Tweet

More Decks by gaomar

Other Decks in Technology

Transcript

  1. TFSWFSMFTTLPCF
    ϚϧνΫϥ΢υͰ͍Ζ͍Ζ
    ʮ͕͓ͬͯʯΈͨ
    M5

    View Slide

  2. TFSWFSMFTTLPCF
    ࣗݾ঺հʢ͕͓·Δʣ
    ॴଐɿגࣜձࣾΞΠΤϯλʔɹେࡕࢧళ
    ɹɹɹ3%ɹ೥ೖࣾ
    ɹɹɹεϚʔτεϐʔΧʔΤόϯδΣϦετ
    ɹɹɹ-*/&"1*&YQFSUʢʙʣ
    ɹɹɹ"MFYB$IBNQJPOʢʙʣ
    ۀ຿ɿ"5-BCPɾ͕͓·Δक़ओ࠵
    ɹɹɹεϚʔτεϐʔΧʔݚڀ։ൃ
    ɹɹɹ31"ݚڀ։ൃ
    ߴഅɹ޺య
    !HBPNBS
    ޷͖ͳݴ༿ɿͶ͐$MPWB
    ͔ͨ͏·ɹͻΖͷΓ

    View Slide

  3. TFSWFSMFTTLPCF
    εϚʔτεϐʔΧʔΞϓϦ։ൃೖ໳
    େ޷ධൃചதʂ

    View Slide

  4. TFSWFSMFTTLPCF
    ຊ୊

    View Slide

  5. TFSWFSMFTTLPCF
    ʮ͕͓ͬͯΔʯͱ͸
    ͋Γͱ͋ΒΏΔΫϥ΢υαʔϏεΛͱʹ͔ͪ͘͝Ό·ͥʹͯ͠
    Կ͔ͩྑ͘෼͔Βͳ͍͚Ͳɺ
    ࠷ऴతʹಈ͍ͯΈΜͳϋοϐʔʹͳΕΔ͜ͱ
    ཁ͢Δʹນͷ಺ห౰తͳҙຯ߹͍

    View Slide

  6. TFSWFSMFTTLPCF
    "MFYB$IBNQJPOͷϖʔδʹ("͞Εͨʂ

    View Slide

  7. TFSWFSMFTTLPCF
    ͕͓ͬͯΔͦͷ

    View Slide

  8. TFSWFSMFTTLPCF
    ౙٳΈͰՋͩͬͨͷͰ
    1PXFS"VUPNBUF࢖ͬͯ
    -*/&#PUΛ̏ͭ࡞ͬͯΈͨ

    View Slide

  9. TFSWFSMFTTLPCF
    1PXFS"VUPNBUFͱ͸

    View Slide

  10. TFSWFSMFTTLPCF
    0$3#PU
    $PNQVUFS7JTJPOΛར༻ͯ͠-*/&ʹ্͛ͨը૾ͷ
    தʹ͋ΔจࣈྻΛೝࣝͯͦ͠ͷ݁ՌΛฦ͢ɻ
    ೝࣝ཰͸ߴΊ͕ͩɺखॻ͖จࣈͷೝࣝ཰͕͔ͳΓ
    ௿Լͨ͠

    View Slide

  11. TFSWFSMFTTLPCF
    ຋༁#PU
    5FYU5SBOTMBUPSΛར༻ͯ͠#PUʹ౤͛ͨ೔ຊޠΛ
    ӳޠʹ຋༁ͯ͠ฦͯ͘͠ΕΔɻ
    Ұ࣌ظ໰୊ʹͳͬͨࡖϚοεϧΛࢼͨ͠Β΋ͬͱ
    ΧΦεͳ͜ͱʹͳ͍ͬͯͨ͆

    View Slide

  12. TFSWFSMFTTLPCF
    $VTUPN7JTJPOΛར༻ͯ͠#PUʹ౤͛ͨը૾͔Β
    ࢦఆͨ͠λά໊Λฦ͢ɻ
    ίʔϯϑϨʔΫͷը૾Λ౤͛ΔͱίʔϯϑϨʔΫ
    ͔Ͳ͏͔൑ఆͯ͘͠ΕΔ
    ෼ྨث#PU

    View Slide

  13. TFSWFSMFTTLPCF
    (PPHMFͷ5FBDIBCMF.BDIJOF͕Ϡό͍ʂ

    View Slide

  14. TFSWFSMFTTLPCF

    View Slide

  15. TFSWFSMFTTLPCF
    ͜ΕΛ࢖ͬͨϋϯζΦϯΛདྷ݄ߦ͍·͆͢
    ຬһޚྱʂ

    View Slide

  16. TFSWFSMFTTLPCF
    0$3#PU ຋༁#PU ෼ྨث#PU

    View Slide

  17. TFSWFSMFTTLPCF
    ͕͓ͬͯΔͦͷ
    M5

    View Slide

  18. TFSWFSMFTTLPCF
    #MVFUPPUIൃ৴ػͰ-*/&ΞϓϦΛܦ༝ͯ͠
    ࢦఆͨ͠8FCIPPLઌʹ͍ۙͮͨਓͷ৘ใΛ
    ඈ͹͢͜ͱ͕Ͱ͖Δ

    View Slide

  19. TFSWFSMFTTLPCF
    M5
    .4UJDL$
    ɾ&41಺ଂ
    ɾY5'5Χϥʔӷথ
    ɾN"I-J1PόοςϦʔ
    ɾ(SPWFϙʔτ
    ɾ.#ϑϥογϡϝϞϦ
    ɾ࣠ηϯα
    ɾ=

    View Slide

  20. TFSWFSMFTTLPCF
    -*/&4JNQMF#FBDPOͱ͸
    -*/&4JNQMF#FBDPOͱ͸ɺ-*/&#PU։ൃऀ޲͚ͷϏʔίϯ
    σόΠε࢓༷Ͱ͢ɻ-*/&4JNQMF#FBDPO͸#MVFUPPUI
    -PX&OFSHZ ҎԼɺʮ#-&ʯͱ͍͏
    ͷ࢓༷ʹ΋ͱ͍͓ͮͯ
    Γɺ൚༻ͷσόΠεͰ-*/&#FBDPOͷαʔϏεΛར༻͢Δ͜
    ͱΛՄೳͱ͠·͢ɻ
    IUUQTHJUIVCDPNMJOFMJOFTJNQMFCFBDPOCMPCNBTUFS3&"%.&KBNE

    View Slide

  21. TFSWFSMFTTLPCF
    ͔͜͜Β-*/&#PUͱඥ෇͚ͯ*%Λൃߦ͢Δ͚ͩ
    IUUQTNBOBHFSMJOFCJ[CFBDPOSFHJTUFS

    View Slide

  22. TFSWFSMFTTLPCF
    -*/&#FBDPOΛ༗ޮԽ

    View Slide

  23. TFSWFSMFTTLPCF
    Ͱ͖ͨ΋ͷ͸ͪ͜Β

    View Slide

  24. View Slide

  25. TFSWFSMFTTLPCF
    ΞʔΩςΫνϟ
    M5
    ʗड෇ͨ͠Αʘ
    ʘ͕͓·Δ͕དྷͨΑʗ
    66*%
    FOUFS
    66*%

    View Slide

  26. TFSWFSMFTTLPCF
    ͕͓ͬͯΔͦͷ

    View Slide

  27. TFSWFSMFTTLPCF
    ͱ͸
    23ίʔυܾࡁ΍ΦϯϥΠϯγϣοϐϯά
    ʹ࢖ͬͨΓͰ͖ΔεϚϗܾࡁαʔϏε
    །Ұ։ൃ༻4%,͕ެ։͞Ε͓ͯΓɺ
    ୭Ͱ΋։ൃΛ࢝ΊΔ͜ͱ͕Ͱ͖Δ

    View Slide

  28. TFSWFSMFTTLPCF
    31"πʔϧͷҰछ
    ࡞ۀ΍ۀ຿ΛࣗಈԽ͢ΔϩϘοτΛ։ൃ͢Δπʔϧ

    View Slide

  29. TFSWFSMFTTLPCF
    ΦʔέετϨʔλʔ͕͋Δ

    View Slide

  30. TFSWFSMFTTLPCF
    6J1BUI0SDIFTUSBUPSͱ͸
    ɾδϣϒͷεέδϡʔϧ؅ཧ
    ɾ౷߹ӡ༻؅ཧ
    ɾ಺෦౷੍
    ɾηΩϡϦςΟରࡦ
    ɾॊೈͳ֦ுੑ

    View Slide

  31. TFSWFSMFTTLPCF
    ॊೈͳ֦ுੑ
    ɾ31"ͷ؅ཧػೳΛ3&45"1*ͱͯ͠ެ։
    ɾϩϘͷىಈࢦ͕ࣔ؆୯ʹͰ͖Δ
    ɾ֎෦ͷ༷ʑͳαʔϏεͱ࿈ܞ͢Δ͜ͱ͕Մೳʂ

    View Slide

  32. TFSWFSMFTTLPCF
    Ͱ͖ͨ΋ͷ͸ͪ͜Β

    View Slide

  33. TFSWFSMFTTLPCF
    IUUQTZPVUVCF:#7TSMH

    View Slide

  34. TFSWFSMFTTLPCF
    ΞʔΩςΫνϟ
    ΦʔέετϨʔλʔ
    ʘܾࡁ৘ใೖྗʂʗ
    -*/&1BZ
    ܾࡁ
    (JU)VC

    View Slide

  35. TFSWFSMFTTLPCF
    -*''ʢ-*/&'POUFOE'SBNFXPSLʣ
    -*/&ΞϓϦ಺Ͱಈ࡞͢Δ΢ΣϒΞϓϦͷϓϥοτϑΥʔϜ
    Ϣʔβʔ৘ใΛ׆༻ͨ͠ػೳΛఏڙͨ͠Γɺ
    Ϣʔβʔͷ୅ΘΓʹϝοηʔδΛૹ৴ͨ͠ΓͰ͖·͢
    ˞-*''ܦ༝Ͱ-*/&ͷϓϩϑΟʔϧ͕औಘՄೳ
    ˞-*''W͔Β8FCܦ༝Ͱར༻Մೳʹ

    View Slide

  36. TFSWFSMFTTLPCF
    6J1BUIϑϩʔਤ
    ύϒϦογϡͯ͠
    ΦʔέετϨʔλʔʹΞοϓ͢Δ

    View Slide

  37. TFSWFSMFTTLPCF
    ΦʔέετϨʔλʔʹϩϘ͕Ξοϓ͞ΕΔ
    όʔδϣϯ؅ཧ͕Մೳʂ

    View Slide

  38. TFSWFSMFTTLPCF
    ͔͜͜Β։ൃΑΓͳ࿩

    View Slide

  39. 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
    ܾࡁ༧໿

    View Slide

  40. 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
    ܾࡁ֬ೝ

    View Slide

  41. TFSWFSMFTTLPCF
    ࣮ݱ͢ΔͨΊͷεςοϓ͕໘౗͍X
    ɾΞΫηετʔΫϯΛൃߦ͢Δ
    ɾαʔϏεΠϯελϯεࣝผࢠऔಘ
    ɾ3FMFBTF,FZΛऔಘ͢Δ
    ɾδϣϒʢϩϘʣΛ࣮ߦ͢Δ

    View Slide

  42. TFSWFSMFTTLPCF
    ֎෦αʔϏεͱ࿈ܞ͢ΔͨΊʹඞཁͳ
    τʔΫϯ΍3FMFBTF,FZΛऔಘ͢Δ

    View Slide

  43. TFSWFSMFTTLPCF
    ΞΫηετʔΫϯΛൃߦ͢Δ
    IUUQTEPDTVJQBUIDPNPSDIFTUSBUPSWSFGFSFODFTFDUJPOHFUUJOHSFGSFTIUPLFO
    ֤छτʔΫϯΛϝϞ

    View Slide

  44. TFSWFSMFTTLPCF
    τʔΫϯͷ༗ޮ࣌ؒ͸
    ࣌ؒͰ੾Ε·͢

    View Slide

  45. TFSWFSMFTTLPCF
    ͦΕҎ֎ʹ΋ෳ਺ͷ"1*Λୟ͔ͳ͍ͱ͍͚ͳ͍PS[

    View Slide

  46. TFSWFSMFTTLPCF
    ·ͱΊ

    View Slide

  47. TFSWFSMFTTLPCF
    ɾ1PXFS"VUPNBUF͸ϊϯίʔςΟϯάͰ৭ʑͰ͖Δ
    ɾ͓ख࣋ͪͷσόΠεΛ-*/&#FBDPOԽՄೳ
    ɾ-*/&1BZ͸།Ұ։ൃ4%,͕ެ։͞Ε͍ͯΔ
    ɾ4UBSU+PCTؔ਺ͰϩϘΛ࣮ߦͰ͖Δ
    ɾൃߦͨ͠τʔΫϯͷ༗ޮ࣌ؒ͸࣌ؒ
    ɾ͍ΖΜͳ࿈ܞָ͍͠ʘ ?P?
    ʗ

    View Slide

  48. TFSWFSMFTTLPCF
    ࠂ஌

    View Slide

  49. TFSWFSMFTTLPCF
    ɹ-*/&ͷνϟοτϘοτΛ࡞Ζ͏!͋΂ͷϋϧΧε'

    View Slide

  50. TFSWFSMFTTLPCF
    ɹ31"ษڧˍ-5ձʂ31"-5ϋϯζΦϯࢧ෦WPM!େࡕ

    View Slide

  51. TFSWFSMFTTLPCF
    εϚʔτεϐʔΧʔΛ༡ͼ͓ͨ͢ձ
    େࡕ
    ໊ݹ԰
    ౦ژ
    ̏ڌ఺ಉ࣌தܧ

    View Slide

  52. TFSWFSMFTTLPCF
    7PJDF$PO+BQBO
    ೔ຊ࠷େڃͷ76*ɾεϚʔτεϐʔΧʔΠϕϯτ
    IUUQTWPJDFDPOKBQBOBBKVHKQ

    View Slide

  53. TFSWFSMFTTLPCF
    =ׂҾΫʔϙϯίʔυ
    vcj2020kobe

    View Slide

  54. TFSWFSMFTTLPCF
    ϦΞϧλΠϜΞϯέʔτ

    View Slide

  55. TFSWFSMFTTLPCF
    ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
    M5

    View Slide