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

claspではじめるサーバーレス開発 Google Apps Scriptで簡単自動化

武田隆志
November 01, 2019

claspではじめるサーバーレス開発 Google Apps Scriptで簡単自動化

2019年11月01日に開催された「Developers.IO 2019 in TOKYO」で「claspではじめるサーバーレス開発 Google Apps Scriptで簡単自動化」というタイトルで発表させていただきました。
GASの便利なポイントおよび開発時にネックになるポイントを説明し、claspがどう解決してくれるのかを紹介しました。

武田隆志

November 01, 2019
Tweet

More Decks by 武田隆志

Other Decks in Programming

Transcript

  1. DNEFWJP αʔόʔϨεͷఆٛ  l  ;FSP4FSWFS0QT4FSWFSMFTTESBNBUJDBMMZDIBOHFTUIFDPTUNPEFMPG SVOOJOHTPGUXBSFBQQMJDBUJPOTUISPVHIFMJNJOBUJOHUIFPWFSIFBE JOWPMWFEJOUIFNBJOUFOBODFPGTFSWFSSFTPVSDFT  /P$PNQVUF$PTU8IFO*EMF0OFPGUIFHSFBUFTUCFOFpUTPG

    TFSWFSMFTTQSPEVDUTGSPNBDPOTVNFSQFSTQFDUJWFJTUIBUUIFSFBSFOP DPTUTSFTVMUJOHGSPNJEMFDBQBDJUZ z ग़యɿIUUQTHJUIVCDPNDODGXHTFSWFSMFTTUSFFNBTUFSXIJUFQBQFSTTFSWFSMFTT PWFSWJFXXIBUJTTFSWFSMFTTDPNQVUJOH
  2. DNEFWJP ("4ͱ"84-BNCEBͷൺֱ  ("4 "84-BNCEB αϙʔτϥϯλΠϜ +BWB4DSJQU  GVUVSF /PEFKT

    1ZUIPO 3VCZ +BWB (P  $ BOE.PSF ࣮ߦ੍࣌ؒݶ ෼ʢ্Ґϓϥϯͩͱ෼ʣ ෼ ೝূʗೝՄ (PPHMFೝূ *". ఆظ࣮ߦ ˓ʢ࣌ؒओಋܕʣ ˓ʢ$MPVE8BUDI&WFOUTʣ ϥΠϒϥϦ ("4༻ϥΠϒϥϦ ˓ ྉۚ ແྉʢ(4VJUFʹؚ·ΕΔʣ ϦΫΤετճ਺ͱϝϞϦׂΓ౰ͯʹ ΑΓܭࢉ ਪ͠ϙΠϯτ εϓϨουγʔτ࿈ܞ "84࿈ܞ
  3. DNEFWJP ("4ͱ"84-BNCEBͷൺֱ  ("4 "84-BNCEB αϙʔτϥϯλΠϜ +BWB4DSJQU  GVUVSF /PEFKT

    1ZUIPO 3VCZ +BWB (P  $ BOE.PSF ࣮ߦ੍࣌ؒݶ ෼ʢ্Ґϓϥϯͩͱ෼ʣ ෼ ೝূʗೝՄ (PPHMFೝূ *". ఆظ࣮ߦ ˓ʢ࣌ؒओಋܕʣ ˓ʢ$MPVE8BUDI&WFOUTʣ ϥΠϒϥϦ ("4༻ϥΠϒϥϦ ˓ ྉۚ ແྉʢ(4VJUFʹؚ·ΕΔʣ ϦΫΤετճ਺ͱϝϞϦׂΓ౰ͯʹ ΑΓܭࢉ ਪ͠ϙΠϯτ εϓϨουγʔτ࿈ܞ "84࿈ܞ ݁ہɺ Կ͕͍ͨ͠ͷ͔ ͕େࣄ
  4. DNEFWJP ("4ͷ࢖͍ํ͸େ͖͘छྨ  w ελϯυΞϩϯεΫϦϓτ w εΫϦϓτࣗମΛ(PPHMF%SJWFʹอଘ͠ɺ୯ମͰ࣮ߦ͢Δ w 6*ͷඞཁͳ͍ఆظλεΫͳͲʹద͍ͯ͠Δ w

    ίϯςφόΠϯυεΫϦϓτ w εϓϨουγʔτͳͲΛ%SJWFʹอଘ͠ɺεΫϦϓτ͸ͦͷ υΩϡϝϯτʹඥ෇͍ͯอଘ͞ΕΔ w ಛఆͷυΩϡϝϯτʹରͯ͠ૢ࡞͍ͨ͠৔߹ͳͲʹదͯ͠ ͍Δ
  5. DNEFWJP ("4Λ࢖ͬͯΈΔ  GVODUJPOPVUQVU(NBJM'JMUFS4FUUJOHT \ WBSTIFFU4QSFBETIFFU"QQHFU"DUJWF4IFFU  TIFFUDMFBS  WBSpMUFST(NBJM6TFST4FUUJOHT'JMUFSTMJTU

    NF pMUFS WBSIFBEFST< JE  DSJUFSJBGSPN  DSJUFSJBUP  DSJUFSJBTVCKFDU  DSJUFSJBRVFSZ  DSJUFSJBOFHBUFE2VFSZ  DSJUFSJBIBT"UUBDINFOU  DSJUFSJBFYDMVEF$IBUT  DSJUFSJBTJ[F  DSJUFSJBTJ[F$PNQBSJTPO  BDUJPOBEE-BCFM*ET  BDUJPOSFNPWF-BCFM*ET  BDUJPOGPSXBSE  > WBSWBMVFTpMUFSTNBQ GVODUJPO G \ SFUVSO< GJE  GDSJUFSJBGSPN  GDSJUFSJBUP  GDSJUFSJBTVCKFDU  GDSJUFSJBRVFSZ  GDSJUFSJBOFHBUFE2VFSZ  GDSJUFSJBIBT"UUBDINFOU  GDSJUFSJBFYDMVEF$IBUT  GDSJUFSJBTJ[F  GDSJUFSJBTJ[F$PNQBSJTPO  GBDUJPOBEE-BCFM*ETOVMM GBDUJPOBEE-BCFM*ETKPJO   GBDUJPOSFNPWF-BCFM*ETOVMM GBDUJPOSFNPWF-BCFM*ETKPJO   GBDUJPOGPSXBSE  >NBQ GVODUJPO W \ SFUVSOWOVMM W ^  ^  WBMVFTVOTIJGU IFBEFST  TIFFU HFU3BOHF   WBMVFTMFOHUI IFBEFSTMFOHUI  TFU8SBQ4USBUFHZ 4QSFBETIFFU"QQ8SBQ4USBUFHZ$-*1  TFU7BMVFT WBMVFT  ^
  6. DNEFWJP εΫϦϓτΤσΟλʔʹΑΔ։ൃͷ໰୊఺  w (JUͳͲͰόʔδϣϯ؅ཧ͕Ͱ͖ͳ͍ w ίϐϖͯ͠ϩʔΧϧʹอଘͱ͔ͨ͘͠ͳ͍ w (JU)VCͷ13ͳͲΛ࢖ͬͯϨϏϡʔͰ͖ͳ͍ w

    +BWB4DSJQUͷϥϯλΠϜ͕ݹ͍ͷͰɺݹ͍ॻ͖ํΛ ڧ੍͞ΕΔ w ιʔείʔυϑΥʔϚολʔͳͲΤίγεςϜ͕࢖͑ ͳ͍
  7. DNEFWJP εΫϦϓτΤσΟλʔʹΑΔ։ൃͷ໰୊఺  w (JUͳͲͰόʔδϣϯ؅ཧ͕Ͱ͖ͳ͍ w ίϐϖͯ͠ϩʔΧϧʹอଘͱ͔ͨ͘͠ͳ͍ w (JU)VCͷ13ͳͲΛ࢖ͬͯϨϏϡʔͰ͖ͳ͍ w

    +BWB4DSJQUͷϥϯλΠϜ͕ݹ͍ͷͰɺݹ͍ॻ͖ํΛ ڧ੍͞ΕΔ w ιʔείʔυϑΥʔϚολʔͳͲΤίγεςϜ͕࢖͑ ͳ͍ ͜ΕΒ͕໰୊ʹͳΒͳ͍έʔεͰ͸
 εΫϦϓτΤσΟλʔͰ͍͍ͱࢥ͍·͢ ʢݸਓͰ࢖༻͔ͭখن໛ʣ
  8. DNEFWJP DMBTQͷϝϦοτ  w +BWB4DSJQUͷϥϯλΠϜ͕ݹ͍ͷͰɺݹ͍ॻ͖ํΛ ڧ੍͞ΕΔ w ˠ5ZQF4DSJQU͕࢖͑Δ w ˠΞοϓϩʔυ࣌ʹࣗಈతʹ+BWB4DSJQUʹม׵

    w ιʔείʔυϑΥʔϚολʔͳͲΤίγεςϜ͕࢖͑ ͳ͍ w ˠϩʔΧϧ։ൃ͕ՄೳͱͳΔͷͰͻͱͱ͓Γ࢖͑Δ
  9. DNEFWJP w TSD$PEFUT DMBTQΛ࢖ͬͯΈΔ  GVODUJPOPVUQVU(NBJM'JMUFS4FUUJOHT \ DPOTUTIFFU4QSFBETIFFU"QQHFU"DUJWF4IFFU  TIFFUDMFBS

     DPOTUpMUFST(NBJM6TFST4FUUJOHT'JMUFSTMJTU NF pMUFS DPOTUIFBEFST< JE  DSJUFSJBGSPN  DSJUFSJBUP  DSJUFSJBTVCKFDU  DSJUFSJBRVFSZ  DSJUFSJBOFHBUFE2VFSZ  DSJUFSJBIBT"UUBDINFOU  DSJUFSJBFYDMVEF$IBUT  DSJUFSJBTJ[F  DSJUFSJBTJ[F$PNQBSJTPO  BDUJPOBEE-BCFM*ET  BDUJPOSFNPWF-BCFM*ET  BDUJPOGPSXBSE  > DPOTUWBMVFTpMUFSTNBQ G < GJE  GDSJUFSJBGSPN  GDSJUFSJBUP  GDSJUFSJBTVCKFDU  GDSJUFSJBRVFSZ  GDSJUFSJBOFHBUFE2VFSZ  GDSJUFSJBIBT"UUBDINFOU  GDSJUFSJBFYDMVEF$IBUT  GDSJUFSJBTJ[F  GDSJUFSJBTJ[F$PNQBSJTPO  GBDUJPOBEE-BCFM*ETOVMM GBDUJPOBEE-BCFM*ETKPJO   GBDUJPOSFNPWF-BCFM*ETOVMM GBDUJPOSFNPWF-BCFM*ETKPJO   GBDUJPOGPSXBSE  >NBQ WWOVMM W    DPOTUEBUB<IFBEFST WBMVFT> TIFFU HFU3BOHF   EBUBMFOHUI IFBEFSTMFOHUI  TFU8SBQ4USBUFHZ 4QSFBETIFFU"QQ8SBQ4USBUFHZ$-*1  TFU7BMVFT EBUB  ^
  10. DNEFWJP DMBTQΛ࢖ͬͯΈΔ  w TSDBQQTTDSJQUKTPOΛ࣍ͷΑ͏ʹฤू \ UJNF;POF"TJB5PLZP  EFQFOEFODJFT\ FOBCMFE"EWBODFE4FSWJDFT<\

    VTFS4ZNCPM(NBJM  TFSWJDF*EHNBJM  WFSTJPOW ^> ^  FYDFQUJPO-PHHJOH45"$,%3*7&3 ^
  11. DNEFWJP ͦͷଞػೳ  w DMBTQMPHT w $-*Ͱϩά͕֬ೝͰ͖Δ w ($1ϓϩδΣΫτͷઃఆ͕ඞཁ w

    DMBTQSVO w $-*Ͱ("4ͷؔ਺͕࣮ߦͰ͖Δ w ($1ϓϩδΣΫτͱೝূͷઃఆ͕ඞཁʢಗ໊ෆՄͷ৔߹ʣ w DMBTQJHOPSF w QVTIͨ͘͠ͳ͍ϑΝΠϧΛࢦఆͰ͖Δ
  12. DNEFWJP ࣄྫ  εϓϨουγʔτͱ4ͷ࿈ܞ  w εϓϨουγʔτͷ৘ใΛ+40/ܗࣜʹͯ͠4ʹ Ξοϓϩʔυ w ೔ʑͷӡ༻Ͱ࢖༻ʢखಈΩοΫʣ

    w εϓϨουγʔτͷڞ༗ൣғΛม͑Δ͚ͩͰ؆୯ʹ࡞ۀର ৅ऀΛมߋͰ͖Δ w 6*͕εϓϨουγʔτͳͷͰඇΤϯδχΞͰ΋ѻ͍΍͍͢
  13. DNEFWJP ࢀߟ63-  w 2VPUBTGPS(PPHMF4FSWJDFT w IUUQTEFWFMPQFSTHPPHMFDPNBQQTTDSJQUHVJEFTTFSWJDFTRVPUBT w "84-BNCEBͷ੍ݶ w

    IUUQTEPDTBXTBNB[PODPNKB@KQMBNCEBMBUFTUEHMJNJUTIUNM w HPPHMFDMBTQ w IUUQTHJUIVCDPNHPPHMFDMBTQ