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

kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)

kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)

kintone Café 東京 Vol.3のハンズオンパートの資料です。

Ryu Yamashita

July 24, 2015
Tweet

More Decks by Ryu Yamashita

Other Decks in Technology

Transcript

  1. w LJOUPOFͱ͸ʁ w LJOUPOFେཁૉͱ3&45"1* w LJOUPOFͱ"84 w LJOUPOF3&45"1* w ֓ཁ

    w ϦΫΤετྫ w /PEFKTʹΑΔϦΫΤετྫ w αϯϓϧμ΢ϯϩʔυ 5PEBZ`T$BGÉ.VOF 2 w "844ͱ-BNCEB w 4ɾόέοτઃఆ w -BNCEBɾΠϕϯτઃఆ w -BNCEBؔ਺ͷهड़ w ϋϯζΦϯ w γφϦΦ w αϯϓϧʢͭͷΞϓϦͷߋ৽ʣ w ΨνϋϯζΦϯʢෳ਺ΞϓϦͷߋ৽ʣ ˞εϥΠυ಺ϦϯΫ͸1%'μ΢ϯϩʔυ࣌ʹ༗ޮʹͳΓ·͢
  2. ࣗݾ঺հ 3  *05ͱάϧʔϓ΢ΣΞʢσξΤʣͷ࿈ܞΛࢼΈͯLJOUPOFɹʹग़ձ͏  LJOUPOFΤόϯδΣϦετʹ  LJOUPOF޷͖͕ߴͯ͡ɺք۾ॳͷLJOUPOFస৬  LJOUPOF$BGÉӡӦࣄ຿ہ։ઃɺࣄ຿ہϝϯόʔʹ

     LJOUPOF$BGÉ෱Ԭ7PMΛओ࠵ ݱࡏʢLJOUPOFྺ೥ͪΐͬͱɺ"84ྺ਺िؒʣ ଟ෼ɺl೔ຊͰ།ҰLJOUPOFͰ͝൧৯΂ͯΔਓz גࣜձࣾδϣΠκʔɹࢁԼཽʢʣ෱Ԭݝେໂాࢢग़਎ ʮϒϧʔ΢Σʔ ϒʯ ͱ͍͏ڞ௨఺
  3. LJOUPOFͱ͸ʁʢͬ͘͟Γʣ 10 w ίϯηϓτ wʮϑΝετγεςϜʯ wʮ෼Ͱۀ຿վળΞϓϦʯ w ߏ੒ཁૉ wσʔλ w

    ϓϩηε؅ཧʢϫʔΫϑϩʔʣ wίϛϡχέʔγϣϯ ʢग़యɿʮLJOUPOFެࣜαΠτʯʣ ʮαΠϘ΢ζϓϩμΫτνʔϜΛڧ͘͢Δπʔϧʯ ͷதͰ΋൚༻ੑͱઐ໳ੑΛߦ͖དྷ͠ͳ͕Βɺ༷ʑͳ ۀ຿γʔϯͰ׆༻ग़དྷΔΫϥ΢υσʔλϕʔε ʢ8FC%#ʣαʔϏε
  4. ʲࢀߟʳαΠϘ΢ζϓϩμΫτ 12 ϝʔϧڞ༗ άϧʔϓ΢ΣΞ ʢதখاۀ޲͚ʣ ʢதݎɾେاۀ/ւ֎޲͚ʣ ແྉ άϧʔϓ΢ΣΞ ϞόΠϧɾ ϦϞʔτΞΫηε

    ʢηΩϡΞΞΫηεʣ ʢϞόΠϧΞϓϦʣ ϑΝετγεςϜ ϑΝετʹۀ຿վળΞϓϦΛ࡞Δ ɾࣗ෼ͰϑΥʔϜΛฒ΂ͯ ɾExcel/CSVΛऔࠐΜͰ ɾkintoneΞϓϦετΞ͔Β ɾSI/αʔϏεΛड͚ͯ Քಇ࣮੷99.9%ͷࣗલɾࠃ࢈Ϋϥ΢υΠϯϑϥ SLO 99.99%΁
  5. w σʔλ w υϥοάυϩοϓͰ؆୯ϑΥʔϜઃܭʢ๛෋ͳϑΥʔϜύʔπɺϑΝΠϧఴ෇ʣ w ڧԽ͞Εͨτοϓը໘ʢҰཡɺΧϨϯμʔɺΧελϜϏϡʔʣ w άϥϑ΍ूܭػೳʢ͓͢͢ΊάϥϑɺఆظϨϙʔτɺΫϩεूܭ౳ʣ w ௨஌ɾϦϚΠϯμʔઃఆʢϝʔϧɺϞόΠϧΞϓϦ௨஌ʣ

    w ΞϓϦؒσʔλ࿈ܞʢϧοΫΞοϓɺؔ࿈ϨίʔυɺΞΫγϣϯػೳʣ w શจݕࡧʹΑΔ༰қͳ৘ใͷऔΓग़͠ʢఴ෇ϑΝΠϧͷத΋ର৅ʣ w ΞΫηεݖઃఆʢΞϓϦάϧʔϓɺΞϓϦɾϨίʔυɾϑΟʔϧυ୯Ґʣ LJOUPOFͱ͸ʁʢϥΠτίʔεʣ 16 ෼Ͱۀ຿վળΞϓϦΛ࡞ΔͨΊͷϢʔβϏϦςΟ ͷߴ͍ඪ४ػೳʢϓϩάϥϛϯάͳ͠ʣ
  6. w ͦͷଞ w ϞόΠϧରԠʢϞόΠϧϏϡʔɺϞόΠϧΞϓϦʣ w LJOUPOFΞϓϦετΞɺΞϓϦςϯϓϨʔτʹΑΔΞϓϦͷतडڞ༗ɾ࠶ར༻ w ڧݻͳηΩϡϦςΟʢϑΝΫλʔೝূɺ*1ΞυϨε੍ݶʣ w ҆৺ͷόοΫΞοϓ

    w ࠃࡍԽରԠʢ೔ɾӳɾதͷΧࠃޠͷϑΟʔϧυ໊শΛఆٛʣ w ઐ໳ͷ࿈ܞιϦϡʔγϣϯʢαʔυύʔςΟʔʣ͕ॆ࣮த LJOUPOFͱ͸ʁʢϥΠτίʔεʣ 21
  7. w ͦͷଞʢϐοΫΞοϓʣ LJOUPOFͱ͸ʁʢϥΠτίʔεʣ 22 ϞόΠϧϏϡʔ ϑΝΫλʔೝূ ॏ৑௕Խʮ4RVBSFʯ ʢग़యɿʮDZCP[VDPNͷΫϥ΢υج൫ʯʣ ͜ΕͰ΋͔ʂͱ ݴ͏͘Β͍ͷ#6

    [subdomain] ϞόΠϧͰ࢖ͬͯ ͦ͜ͷΫϥ΢υ ˞஍ਤ͸+BWB4DSJQU ΧελϚΠζͰ͢ 1$Ϗϡʔઃఆग़དྷ ΔΑ͏ʹͳΓ·ͨ͠
  8. LJOUPOFΧελϚΠζػೳʢελϯμʔυίʔεʣ 23 w 3&45"1* w Ϩίʔυ΍εϖʔεͷૢ࡞ʢొ࿥ɾߋ৽ɾ࡟আ౳ʣɺ όϧΫ"1*ɺΞϓϦ࡞੒ɺϫʔΫϑϩʔૢ࡞ w Ϣʔβɾ૊৫ͷૢ࡞ w

    +BWB4DSJQU$44ΧελϚΠζ w ֤छΠϕϯτϋϯυϧɺ৘ใऔಘ w ϓϩΩγʹΑΔ֎෦"1*࿈ܞ w 63-ࢦఆʹΑΔϥΠϒϥϦͷಡΈࠐΈʢ)5514ରԠʣ σʔλ Ϩίʔυ εϖʔε Ϣʔβ 6* جװγεςϜ Excel ଞͷΫϥ΢υ REST API LJOUPOFQSPYZ
  9. LJOUPOFͱ"84 31 w ΞϓϦέʔγϣϯدΓ1BB4 4BB4  w ΫϥΠΞϯταΠυϑϩϯτΤϯυ ʢ6*69ʣ w

    ߦಈతղऍͷڞ༗ͰΞΫγϣϯΛى͜͠ɺ ίϛϡχέʔγϣϯͰۀ຿Λճ͢ w ΠϯϑϥدΓ1BBT *BB4ɺ#BB4  w αʔόʔαΠυόοΫΤϯυɹɹɹ ίϚϯυ  w ࢥߟతσʔλΛࡹ͖ࣄ৅Λղऍ͢Δ "1*Ͱ ݁߹ɾิ׬
  10. *P5Ͱߟ͑Δ݁߹ɾิ׬Πϝʔδ 32 ɾ೶ۀʢะ৔ʣ ɾݟकΓ ɾݐઃɾ޻ࣄݱ৔ ɾ޻৔ઃඋ ɾΤωϧΪʔઃඋ ݱ৔ ηϯαʔ ɾԹ౓

    ɾ࣪౓ ɾর౓ ɾՃ଎౓ ɾ૽Ի ηϯαʔ Ϋϥ΢υ LJOUPOF ɾ௨஌ ɾϫʔΫϑϩʔ ɾεϨου ɾΧελϚΠζϏϡʔ ࣄ৅ɾσʔλ͕ൃੜ͢Δ σʔλΛࡹ͖ɺ ࣄ৅Λղऍ͢Δ ղऍͷڞ༗ͰΞΫγϣϯΛ ى͜͠ɺίϛϡχέʔγϣ ϯͰۀ຿Λճ͢
  11. ԦಓͬΆ͍"84ͱLJOUPOFͷ࿈ܞύλʔϯ 33 "NB[PO%ZOBNP%# 4USFBN "NB[PO4/4 "NB[PO4 "NB[PO,JOFTJT "NB[PO-BNCEB "NB[PO&$ -BNCEB

    Πϕϯτιʔε 3&45"1* LJOUPOFPODZCP[VDPN ɾϨίʔυૢ࡞ ɾϫʔΫϑϩʔૢ࡞ ɾεϖʔεૢ࡞ ɾΞϓϦૢ࡞ 3&45"1* LJOUPOFQSPYZ  "NB[PO"1*(BUFXBZܦ༝͸ྑͦ͞͏ɾɾɾ 3 &45" 1* ϓϦϛςΟϒͳ࿈ܞ ɾϗεςΟϯά ɾόονॲཧ
  12. LJOUPOFQSPYZ  "NB[PO"1*(BUFXBZܦ༝͸ྑͦ͞͏ɾɾɾ 5PEBZ`T$BGÉ.FOV 34 "NB[PO%ZOBNP%# 4USFBN "NB[PO4/4 "NB[PO,JOFTJT "NB[PO&$

    -BNCEB Πϕϯτιʔε ɾϨίʔυૢ࡞ ɾϫʔΫϑϩʔૢ࡞ ɾεϖʔεૢ࡞ ɾΞϓϦૢ࡞ 3&45"1* 3 &45" 1* ϓϦϛςΟϒͳ࿈ܞ ɾϗεςΟϯά ɾόονॲཧ "NB[PO4 "NB[PO-BNCEB 3&45"1* LJOUPOFPODZCP[VDPN ɾΞϓϦૢ࡞
  13. 5PEBZ`T$BGÉ.FOV 35 "NB[PO4 "NB[PO-BNCEB 3&45"1* LJOUPOFPODZCP[VDPN 4CVDLFU LJOUPOFΧελϚΠζ༻ +4ϑΝΠϧ &WFOU

    1 6 5 /PEFKT ᶃΧελϚΠζ༻ ϑΝΠϧΛ165 ᶅΧελϚΠζ༻ ϑΝΠϧΛߋ৽ ᶄϑΝΠϧ165Ͱ ΠϕϯτυϥΠϒ Ϟνϕʔγϣϯ γφϦΦ ΧελϚΠζ༻ϑΝΠϧΛෳ਺ ΞϓϦͰҰڍʹߋ৽͍ͨ͠ʂ
  14. LJOUPOF3&45"1*ͷ֓ཁ 38 w LJOUPOFΞϓϦͷϨίʔυ΍εϖʔεͷૢ࡞ LJOUPOF3&45"1*ͷ༻్ ϓϩτίϧ w )5514ϓϩτίϧ ϑΥʔϚοτ w

    +40/ จࣈίʔυ w 65' ೝূೝূ w Ϣʔβೝূʢύεϫʔυɺ"1*τʔΫϯʣ w #BTJDೝূ ͦͷଞ w ಉ࣌ॲཧϨίʔυ਺݅ w "1*ಉ࣌ΞΫηε݅ ˞(&5SFDPSETͷΈ݅
  15. ϦΫΤετྫʢ(&5SFDPSETʣ 40 QWRtaW5pc3RyYXRvcjpwYXNzd29y (&5ϝιουͰ͸ $POUFOU5ZQF͸ෆཁ #BTJDೝূΛ࢖༻͍ͯ͠ͳ͍৔߹ʹ΋ ۭཝͰೖΕ͓ͯ͘෼ʹ͸໰୊ͳ͍༷ࢠ https://{subdomain}.cybozu.com/k/v1/records.json?app={app id} ɹʲೝূํ๏ͷهड़ʳ

    9$ZCP[V"VUIPSJ[BUJPO\#"4&FODPEFEJEQBTTXPSE^ "VUIPSJ[BUJPO#BTJD\#"4&FODPEFEJEQBTTXPSE^ ˞ྫͷ\CBTFFODPEFEJEQBTTXPSE^͸JEΛ"ENJOJTUSBUPSɺ QBTTXPSEΛQBTTXPSEͱͨ͠৔߹ͷ஋ͱ͍ͯ͠·͢ )551ΫϥΠΞϯτઃఆը໘ ˞Ҏ߱ɺ(PPHMF$ISPNFͷΞυΦϯʮ1045."/ʯΛར༻͍ͯ͠·͢
  16. ϦΫΤετྫʢ(&5SFDPSETɿଓ͖ʣ 42 Ϩεϙϯε "{field code}": { "type" : "{field type}",

    "value" : "{value}" } ֤ϑΟʔϧυ͸͜ͷΑ͏ʹهड़͞Ε·͢ ɾෳ਺஋ΛऔΓ͏Δ\WBMVF^͸഑ྻʹͳΓ·͢ ɾ1045165ͷࡍ͸UZQF͕ෆཁͰ͢ ϑΟʔϧυͷهड़
  17. αϯϓϧϦϙδτϦ 50 εϥΠυ1Ͱར༻ εϥΠυ1Ͱར༻ εϥΠυ1Ͱར༻ εϥΠυ1Ͱར༻ εϥΠυ1Ͱར༻ εϥΠυ1Ͱར༻ εϥΠυ1Ͱར༻ εϥΠυ1Ͱར༻

    εϥΠυ1Ͱར༻ ˞εϥΠυ಺ϦϯΫ͸1%'μ΢ϯϩʔυ࣌ʹ༗ޮʹͳΓ·͢ ʢʮIUUQTHJUIVCDPNKPZ[PLJOUPOF$BGF5PLZPʯ಺ʣ ˞αϯϓϧ͸ೝূ৘ใ΍ΞϓϦ*%Λ ࣗ͝਎ͷ؀ڥʹ߹Θ͓ͤͯࢼ͍ͩ͘͠͞
  18. $ zip -r sample.zip index.js node_module -BNCEBؔ਺ͷॻ͖ํʢ/PEFKTʣ 82 exports.handler =

    function(event, context) { // ਖ਼ৗͱͯ͠ऴ͍ྃͤͨ࣌͞ʹ͸ context.succeed(); // ҟৗͱͯ͠ऴ͍ྃͤͨ࣌͞ʹ͸ context.fail(); }; هड़ςϯϓϨʔτ /PEFKTϞδϡʔϧར༻࣌ -BNCEBؔ਺ͷ+4ϑΝΠϧͱOPEF@NPEFVMFΛ ;*1Ͱύοέʔδϯά +4ϑΝΠϧ໊ͱ)BOEMFS໊Λଗ͑Δ +4ϑΝΠϧ໊ͱ)BOEMFS໊Λଗ͑Δ DPOUFYUTVDDFFEGBJMͷهड़Λ๨ΕΔ ͱΤϥʔͷݪҼʹ΋ͳΔͷͰ஫ҙ
  19. ϋϯζΦϯγφϦΦʢଓ͖ʣ 86 "NB[PO4 "NB[PO-BNCEB 3&45"1* LJOUPOFPODZCP[VDPN 4CVDLFU LJOUPOFΧελϚΠζ༻ +4ϑΝΠϧ &WFOU

    1 6 5 /PEFKT ᶃΧελϚΠζ༻ ϑΝΠϧΛ165 ᶅΧελϚΠζ༻ ϑΝΠϧΛߋ৽ ᶄϑΝΠϧ165Ͱ ΠϕϯτυϥΠϒ Ϟνϕʔγϣϯ γφϦΦ ΧελϚΠζ༻ϑΝΠϧΛෳ਺ ΞϓϦͰҰڍʹߋ৽͍ͨ͠ʂ
  20. ࢀߟ৘ใ 108 w ։ൃίϛϡχςΟαΠτʮDZCP[VDPNEFWFMPQFSOFUXPSLʯ<IUUQT DZCP[VEFW[FOEFTLDPNIDKB> w ίϛϡχςΟʢ࣭໰౳ʣɺϦϑΝϨϯεɺ5JQTɺαϯϓϧɺ։ൃऀϥΠηϯ εਃࠐ w ʮLJOUPOF"1*ʯ<IUUQTDZCP[VEFW[FOEFTLDPNIDKBDBUFHPSJFT

    > w LJOUPOF"1*ͷϦϑΝϨϯεʢDZCP[VDPNEFWOX಺ʣ w ʮΞϓϦ࡞੒ͱઃఆͷมߋʯ<IUUQTDZCP[VEFW[FOEFTLDPNIDKB BSUJDMFT> w LJOUPOFΞϓϦ࡞੒ܥ"1*ϦϑΝϨϯεʢDZCP[VDPNEFWOX಺ʣ