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

多分わかるServerless Framework

astolfo
February 26, 2021

多分わかるServerless Framework

astolfo

February 26, 2021
Tweet

More Decks by astolfo

Other Decks in Programming

Transcript

  1. ଟ෼Θ͔Δ


    Serverless Framework
    ARCANA Meetup
    Nakao Takamasa

    View Slide

  2. ࠓճͷझࢫ
    • αʔόʔϨε͸Կͳͷ͔ɺͦͯ͠Ͳ͏͍͏࣌ʹ໾ʹཱͭͷ͔ཧղͰ͖
    ΔΑ͏ʹͳΔ


    • Serverless FrameworkͱLambda͕ͳΜͳͷ͔গ͠Ͱ΋ཧղͰ͖ΔΑ
    ͏ʹͳΔ


    • جૅͷجૅΛ࿩͠·͢


    • AWS͕བྷΈ࢝ΊΔͱ͜Ζ·Ͱ͸࿩͠·ͤΜ

    View Slide

  3. ΅͘
    ͠͝ͱ


    ɾLaravelͱJQueryͰԥΓ౗͢


    ࠓقΞχϝ


    ɾͷΜͷΜͼΑΓΛ؍͍ͯ·͢

    View Slide

  4. ʮࠓ൩ͷΞχϝͳΜ͚ͩͬʯ

    View Slide

  5. SlackͷbotΛ࡞Γ·ͨ͠

    View Slide

  6. ̍೔̍ճ͔͠ಈ͔ͳ͍ίʔυര஀

    View Slide

  7. ͔͠͠ɺPCʹίʔυ͕͋ΔͷͰPCΛด͡Δͱ
    ಈ͍ͯ͘Ε·ͤΜ

    View Slide

  8. ͳͷͰαʔόͰಈ͔͠·͠ΐ͏

    View Slide

  9. αʔόͰಈ͔͠·͠ΐ͏
    • ద౰ͳαʔό(VPS)Λܖ໿͠·͢


    • SSH΍sudo·ΘΓͱ͍ͬͨUNIXؔ࿈ͷઃఆΛ͠·͢


    • npmΛೖΕ·͢


    • Node.jsΛೖΕ·͢


    • ϑΝΠϧΛSFTPͱ͔Ͱసૹ͠·͢


    • CronͰఆظతʹಈ͘Α͏ʹ͠·͢

    View Slide

  10. ͜ͷํ๏ʹ͸՝୊఺͕͋Δ

    View Slide

  11. ՝୊఺
    • ίʔυΛಈ͔͍͚ͨͩ͠ͳͷʹLinuxͷߏஙΛͯ͠Δ


    • Πϯϑϥ஌ࣝͷͳ͍ํʹͱͬͯ͸ॳݟࡴ͠


    • ಈ͍͍ͯͳ͍࣌ؒ΋՝ۚ͞Ε͍ͯΔ


    • 1೔1ඵ͚ͩಈ͘ίʔυ͕͋ͬͨΒ࢒Γͷ࣌ؒͷ՝ۚ͸…

    View Slide

  12. ࣮૷͞Εͨӡ༻

    View Slide

  13. ސ٬͕ຊ౰ʹ
    ඞཁͩͬͨ΋ͷ
    ࣮૷͞Εͨӡ༻

    View Slide

  14. Lambda
    • AWS͕ఏڙ͢ΔɺίʔυΛ࣮ߦͯ͘͠ΕΔ΍ͭ


    • ͱΓ͋͑ͣjs͕ಈ͘؀ڥΛ͘ΕΔ


    • 1ϛϦඵ͋ͨΓͰ՝ۚ͞ΕΔ


    • 0.0000000021USD


    • ·͔͔͋࣌ؒͬͯ΋ߴ͘͸ͳ͍ΑͶ

    View Slide

  15. • MicrosoftʮαʔόϨεͳAzure FunctionsϦϦʔε͠·͢ʯ


    • IBMʮαʔόϨεͳIBM Cloud FunctionsϦϦʔε͠·͢ʯ


    • GoogleʮαʔόϨεͳGoogle Cloud FunctionsϦϦʔε͠·͢ʯ

    View Slide

  16. ‧‪‬‭⛺è䡢(’ω’)䡢è⛺䡡‬‪‧


    ͏Θ͋͋͋͋͋͋͋͋͋͋͋͋

    View Slide

  17. αʔϏε͝ͱʹίϚϯυ֮͑ΜͷͭΒ͍͠


    แׅతʹͳΜ͔΍ͬͯ͘ΕΔ΋ͷ͸ͳ͍ͷ͔…

    View Slide

  18. ͋ΔΜͩͳͦΕ͕

    View Slide

  19. Serverless Framework
    • ࠓ೔ͷຊ୊


    • αʔόʔϨεܥͷߏ੒Λָʹ؅ཧͯ͘͠ΕΔπʔϧ


    • ָʢ؆୯ͱ͸ݴͬͯͳ͍ʣ

    View Slide

  20. Serverless Frameworkͷಋೖ
    • NpmΛಋೖ͍ͯ͠Δ؀ڥͰҎԼͷίϚϯυΛୟ͘


    • ؆୯Ͱ͢Ͷ

    View Slide

  21. ϓϩόΠμʔΞΧ΢ϯτͷઃఆ
    • Serverless Framework͸֤αʔόʔϨεαʔϏεΛแׅͯ͘͠ΕΔ΍
    ͭͳͷͰɺʮAWSͷLambdaͰ΍Δͱ͖͸͜ͷAPIΩʔ࢖ͬͯͶʯͱ
    ࣄલʹઃఆͯ͋͛͠Δඞཁ͕͋Δ


    • APIΩʔͷൃߦ͕ඞཁͳͷͰAWSͳΒϧʔτϢʔβʔͰೖͬͯIAM
    ϢʔβʔΛ৽ن࡞੒͓ͯ͘͠

    View Slide

  22. ϓϩδΣΫτͷ࡞੒

    View Slide

  23. ϓϩδΣΫτͷ࡞੒
    σΟϨΫτϦΛ࡞Δ

    View Slide

  24. ϓϩδΣΫτͷ࡞੒
    BXTͷMBNCEBͰ/PEFKTΛ
    ࢖͏ͱ͖ͷςϯϓϨʔτ
    ໊લ

    View Slide

  25. ࡞Δ
    • ಈ͔͍ͨ͠ίʔυΛ͕Γ͕Γॻ͘

    View Slide

  26. ࡞Δ
    • ͍͍Ͱ͢Ͷ

    View Slide

  27. ิ଍ࣄ߲
    • ؀ڥม਺͸serverless.ymlͰߦ͏


    • API GatewayͷઃఆͳͲ΋͜͜Ͱߦ͏

    View Slide

  28. σϓϩΠ
    • sls deployͰOK


    • ϥΠϒϥϦ΋Α͠ͳʹ
    ͯ͘͠ΕΔ


    • ZIPͰݻΊͯS3ʹ্͛ͯ
    CFnͰల։͢Δ·Ͱશ
    ࣗಈͰ͢Δ

    View Slide

  29. • ʮServerless Frameworkͷ΄͏͕೉ͦ͠͏ʹݟ͑ΔΜ͚ͩͲʯ


    • ʮ͜Ε࢖ΘͣʹLambdaͰ΍ͬͨ΄͏ָ͕ͳΜ͡Όͳ͍ͷʯ

    View Slide

  30. ಉ͜͡ͱΛLambdaͰ΍Δ৔߹
    • σΟϨΫτϦΛzipͰѹॖ͢Δʢnode_modules΋ͦͷ··Ͱྑ͍ʣ


    • AWSͷϚωδϝϯτ ίϯιʔϧΛ։͖ɺlambdaΛ։͘


    • ֘౰ϓϩδΣΫτΛબ୒


    • ZipΛΞοϓϩʔυ

    View Slide

  31. ͜͏ͳΓ͔Ͷͳ͍ͷͰ͓͢͢Ί͸͠·ͤΜ

    View Slide

  32. ·ͱΊ
    • Serverless Framework͸Lambda”ͳͲ”ͷαʔόʔϨεΞʔΩςΫ
    νϟΛָʹѻ͑ΔϑϨʔϜϫʔΫ


    • AWSͷ৔߹͸APIͷઃఆͳͲ΋ࣗಈԽͰ͖ΔͨΊɺϙνϙνૢ࡞͢Δ
    ख͕ؒҰؾʹল͚Δ

    View Slide

  33. ऴΘΓ

    View Slide