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

静的サイトだけじゃないNetlifyの活用法 / netlify-extra-mode

mottox2
September 26, 2018

静的サイトだけじゃないNetlifyの活用法 / netlify-extra-mode

静的サイトだけじゃないNetlfiyの活用法
Netlify Meetup Tokyo #2で話しました。

事例1: esa.ioをバックエンドとしたブログ https://mottox2.com

mottox2

September 26, 2018
Tweet

More Decks by mottox2

Other Decks in Programming

Transcript

  1. #netlifytokyo Netlify Functions ؔ਺͚ͩॻ͚͹͍͍ײ͡ʹಈ͔ͯ͠ΕΔαʔϏεɻத਎͸AWS lambda Function request response URL Call:

    https://example.com/hoge Status: 200 body: Hello World ͚࣮ͩ͜͜૷͢Δ Functionsͱ͸ʁ
  2. #netlifytokyo Netlify Functions ϛχϚϜߏ੒ 1/3 /functions/hello.js /netlify.toml • NetlifyͷઃఆϑΝΠϧ •

    ࣮ߦϓϩάϥϜΛؚΉσΟϨΫτϦΛࢦఆ • Event͔Βrequest৘ใΛऔಘ • callbackͰresponseΛ࿔Δ
  3. #netlifytokyo JSONͷ഑৴ • Q. ຖճJSONϑΝΠϧॻ͘ͷਏ͍ͷͰ͸ʁ • A. Θ͔ΔɻBuild commandͰJSONϑΝΠϧΛు͖ग़͢ίʔυΛॻ͚͹Α͍ɻ /netlify.toml

    /fetch.js Netlfiyの設定ファイル ビルドコマンドと公開ディレクトリを設定 いい感じに処理したオブジェクトを出⼒ Build commandのリダイレクトで public以下にJSONファイルとして保存される JSONͷੜ੒
  4. #netlifytokyo JSONͷ഑৴ • Q. ֦ுࢠ͕अຐͰ͸ʁ • A. Θ͔Δɻ࣮ݧͨ͠Βग़དྷ·ͨ͠ɻ public/ ┗

    1.html posts/ ┗ index.html ┗ => your.domain.netlify.com/posts/1 => your.domain.netlify.com/posts/ POINT ֦ுࢠͷলུ NetliyͰ͸.html͸লུ͞ΕΔ POINT _headers JSONͱͯ͠Ϩεϙϯεฦͤ͹OK ┗ _headers /public/_headers ֦ுࢠͷѻ͍
  5. #netlifytokyo ߏ੒ਤ • 1. SlackͰreaction emoji͕௥Ճ͞ΕΔ • 2. Event APIʹΑͬͯNetlify

    FunctionsʹϦΫΤετ • 3. Netlify FunctionsͰemojiͷ௥Ճ͞ΕͨϝοηʔδΛ
 ɹGitHubͷContentsAPIʹΑͬͯอଘ • 4. ContentsAPIʹΑͬͯੜͨ͡commitʹΑͬͯNetlifyͷϏϧυ͕։࢝ • 5. อଘ͞ΕͨϝοηʔδΛJSONʹ·ͱΊͯެ։ FLOW Slack 1 2 4 3 GitHub New commit Netlify Function Netlify Build&Publish 5 • SlackͰreaction͕͍ͭͨϝοηʔδΛGitHubʹอଘͯ͠ɺNetlifyͰ഑৴͢Δ
  6. #netlifytokyo ߏ੒ਤ esa.io 1 2 Netlify Build API 3 •

    1. esa.ioͷهࣄ͕ߋ৽͞ΕΔɻ • 2. esa.ioͷWebhookͰNetlifyͷBuild hookΛୟ͘ • 3. Ϗϧυதʹesa.ioͷAPIΛୟ͖ͭͭ੩తαΠτΛੜ੒͠ެ։ FLOW
  7. #netlifytokyo mottox2.com • ੩తαΠτδΣωϨʔλʔa • Ϗϧυ͢Δࡍʹɺesa.ioͷAPIΛ
 ୟ͍ͯαΠτΛੜ੒a • APIͷϨεϙϯε΋ؚΊͯ੩తϑΝ Πϧʹॻ͖ग़ͯ͘͠ΕΔa

    • ؔ࿈ϫʔυ: JAM stack POINT GatsbyJS: ֎෦ͷσʔλιʔεΛར༻ͯ͠αΠτΛߏங͢Δ੩తαΠτδΣωϨʔλʔ GatsbyJS https://mottox2.com
  8. #netlifytokyo ֎෦αʔϏεͷAPIԽ • node fetch.js > public/products.json͋ • APIΛୟ͍ͯ੔ܗ͠ग़ྗ͢ΔJS •

    ׂͱԠ༻ൣғ޿͍ POINT /fetch.js ೚ҙͷαΠτͷWeb APIԽ͕Մೳ Build command