Slide 1

Slide 1 text

BXTDIBMJDFͰ࡞Δ TMBDL຋༁CPU ೥݄೔ ಺ాֶ !.BTUFS$MPVE৽य़Ϋϥ΢υ-5େձ

Slide 2

Slide 2 text

2 ࣗݾ঺հ ಺ా ֶʢ͏ͪͩ ·ͳͿʣ uchimanajet7 JAWS-UG΍SORACOM UGʹࢀՃͯ͠·͢ AWSͱGolang͕޷͖Ͱ͢ ࣗࣾαʔϏεΛ։ൃ͢ΔνʔϜʹॴଐ͍ͯ͠·͢ SORACOM UG

Slide 3

Slide 3 text

͜Μͳܦݧ͋Γ·ͤΜ͔ʁ 1IPUPDSFEJU#FSOJF(PMECBDIPO7JTVBMIVOU$$#:/$/%

Slide 4

Slide 4 text

͜Μͳܦݧ͋Γ·ͤΜ͔ʁ 4 8IBUEPZPVEPXIFO ZPVSFDFJWF4MBDL NFTTBHFJO&OHMJTI

Slide 5

Slide 5 text

͜Μͳܦݧ͋Γ·ͤΜ͔ʁ 5 :PV ӳޠͷϝοηʔδ͔ɾɾɾ Α͘Θ͔Βͳ͍͔Β(PPHMF ຋༁ʹίϐϖͯ֬͠ೝ͠Α ͏

Slide 6

Slide 6 text

͜Μͳܦݧ͋Γ·ͤΜ͔ʁ 6 :PV ͜Ε͔Βຖճίϐϖͯ͠ ຋༁͢Δͷ͸ͪΐͬͱखؒ ͕͔͔Δͳ͊ɾɾɾ

Slide 7

Slide 7 text

໘౗Λղܾ͢Δʹ͸ʁ

Slide 8

Slide 8 text

໘౗Λղܾ͢Δʹ͸ʁ 8 :PV ӳޠ͕Ͱ͖Ε͹໰୊ͳ͍ ͠ɺ͜ΕΛ͖͔͚ͬʹӳޠ ͷษڧΛ࢝ΊΑ͏͔ͳ͊

Slide 9

Slide 9 text

໘౗Λղܾ͢Δʹ͸ʁ 9 :PV ίϐϖ͠ͳ͍Ͱ຋༁Ͱ͖ Ε͹ɺखܰͩ͠໘౗͡Όͳ ͍͔΋͠Εͳ͍

Slide 10

Slide 10 text

͙͢ʹࢼͤΔ͜ͱ

Slide 11

Slide 11 text

͙͢ʹࢼͤΔ͜ͱ ‣ ࢒೦ͳ͕Β͙͢ʹӳޠ͕Ͱ͖ΔΑ͏ʹ͸ͳΒͳ͍ɾɾɾ ‣ ίϐϖΛ͠ͳ͍Ͱ຋༁Ͱ͖ΔΑ͏ͳ࢓૊Έ͕͋Ε͹Α͞ ͦ͏ ‣ Slack͕ࣾެ։͍ͯ͠ΔSlack App͕खܰͰศརͦ͏ ‣ slackapi/reacjilator: A translation bot that translates a message when a user reacted with an emoji ! " # $ % & ' ( ) * + - https://github.com/slackapi/reacjilator 11

Slide 12

Slide 12 text

͙͢ʹࢼͤΔ͜ͱ ‣ ͜ͷSlack AppΛ࢖͑͹ϝοηʔδʹରͯ͠ࠃضͷ ֆจࣈͰϦΞΫγϣϯ͢Δ͜ͱͰɺͦͷࠃͷݴޠʹ ຋༁͞ΕͯεϨουͱͯ͠ฦ৴͞ΕΔΑ͏ʹͳΔ ‣ GitHubϦϙδτϦʹ͸HerokuͷDeployϘλϯ΋ ͋ΔͷͰNode.jsͱGoogle຋༁APIͰ໰୊ͳ͚Ε͹ खܰʹ࢖͑Δ 12

Slide 13

Slide 13 text

ࢼͯ͠Έͨ

Slide 14

Slide 14 text

14 IUUQVDIJNBOBKFUIBUFOBCMPHDPNFOUSZ

Slide 15

Slide 15 text

มߋͨ͠ͷ͸

Slide 16

Slide 16 text

มߋͨ͠ͷ͸ ‣ ϓϩάϥϜ͸Node.js͕ಘҙͰ͸ͳ͍ͷͰ׳Ε͍ͯΔݴޠʹ͍ͨ͠ ‣ ಈ࢈؀ڥ͸࢖͍׳Ε͍ͯΔAWS্Ͱಈ࡞͍ͤͨ͞ ‣ AWS Chalice (Python Serverless Microframework for AWS)Λར ༻ͯ͠Pythonʹมߋ ‣ AWS LambdaΛར༻ͯ͠ಈ࡞͢ΔΑ͏ʹมߋ ‣ aws/chalice: Python Serverless Microframework for AWS - https://github.com/aws/chalice 16

Slide 17

Slide 17 text

มߋͨ͠ͷ͸ ‣ Your app should respond to the event request with an HTTP 2xx within three seconds. If it does not, we'll consider the event delivery attempt failed. After a failure, we'll retry three times, backing off exponentially. ‣ Events API | Slack - https://api.slack.com/events-api#responding_to_events ‣ AWS Lambdaͷίʔϧυελʔτ࣌΍຋༁APIͷԠ౴Λ଴͍ͬͯΔͱ3 ඵͷϦϛοτΛ௒͑Δ͜ͱ͕͋Δ ‣ ϦϛοτΛ௒͑Δͱૹ৴ݩͰࣦഊͱͳΓΠϕϯτ͕࠶ૹ͞ΕΔͷͰɺෳ ਺ճಉ͡ϝοηʔδ͕຋༁͞ΕΔ͜ͱʹͳΔ 17

Slide 18

Slide 18 text

มߋͨ͠ͷ͸ ‣ Amazon API Gatewayܦ༝Ͱslack͔ΒͷΠϕϯτΛड͚ ෇͚ͯAmazon SNSʹૹ৴͢ΔAWS Lambdaͱɺ Amazon SNS͔ΒϝοηʔδΛड͚औͬͯॲཧΛߦ͏ AWS Lambdaͷ2ͭʹ෼͚ͯඇಉظͰॲཧ ‣ AWS LambdaͷίʔϧυελʔτͰ3ඵҎ্͔͔ͬͨ৔߹ ʹ͸ޮՌ͕ͳ͍͕ɺ຋༁APIͷॲཧ଴ͪͰΠϕϯτ͕ෳ਺ ճૹ৴͞ΕΔ͜ͱ͸ͳ͘ͳͬͨ 18

Slide 19

Slide 19 text

มߋͨ͠ͷ͸ ‣ ຋༁API͸ແྉͰ࢖͑Δ࿮͕͋Γ͔ͭɺొ࿥΋؆୯ͳ ͱ͜Ζͷํ͕͋Γ͕͍ͨ ‣ Microsoft Translator API ͸ແྉ࿮͕͋Δ͕ɺΞΧ΢ ϯτొ࿥ʹΫϨδοτΧʔυొ࿥͕͋Γଟগ໘౗ ‣ Translator Text API - ࣗಈ຋༁ | Microsoft Azure - https://azure.microsoft.com/ja-jp/services/ cognitive-services/translator-text-api/ 19

Slide 20

Slide 20 text

มߋͨ͠ͷ͸ ‣ Yandex Translate API ͳΒ͹ɺطଘͷGoogleΞΧ΢ϯτ ͰαΠϯΞοϓͰ͖Δ ‣ ແྉ࿮΋͋ΓαΠϯΞοϓͨ͠ޙɺAPI KeyΛ෷͍ग़ͤ͹ར ༻Մೳ ‣ ରԠ͍ͯ͠Δݴޠ਺΋ଟ͘ɺೖྗจࣈྻͷݴޠࣗಈ൑ผ΋ Մೳ ‣ Translate API — Yandex Technologies - https://tech.yandex.com/translate/ 20

Slide 21

Slide 21 text

มߋͨ͠ͷ͸ ‣ ͔͠͠ɺͲ͏΍ΒYandex͸ϩγΞൃͷاۀ ‣ ຋༁APIΛར༻͢Δʹจࣈྻ͕APIʹૹ৴͞ΕΔ ‣ ͢΂ͯͷslackνϟϯωϧͰϝοηʔδ͕ૹ৴͞ΕΔͷ ͸ෆ͕҆͋Δ ‣ ຋༁͕࣮ߦ͞ΕΔνϟϯωϧΛݶఆ͍ͨ͠ ‣ Yandex - Wikipedia - https://ja.wikipedia.org/wiki/Yandex 21

Slide 22

Slide 22 text

มߋͨ͠ͷ͸ ‣ Πϕϯτͷૹ৴ݩͰίϯτϩʔϧ͢Δ͜ͱ͸Ͱ͖ͳ͍༷ࢠ ‣ ΠϕϯτΛड͚ͨํͰࢦఆͷνϟϯωϧҎ֎͸ड͚෇͚ͳ͍Α͏ʹ͢ Δ ‣ slack্Ͱදࣔ͞Ε͍ͯΔνϟϯωϧ໊Ͱ͸ͳ͘IDͰ؅ཧ͞Ε͍ͯΔ ‣ νϟϯωϧͷIDΛௐ΂Δͷʹ͸channels.list APIΛ࢖͑͹Α͍ ‣ खܰͳͷ͸channels.list APIͷಈ࡞ςετϖʔδͰ࣮ߦͯ݁͠ՌΛ֬ ೝ͢Δ͜ͱ ‣ channels.list method | Slack - https://api.slack.com/methods/channels.list/test 22

Slide 23

Slide 23 text

·ͱΊ *NBHFWJB"UUSJCVUJPO&OHJOF-JDFOTFEVOEFS$$

Slide 24

Slide 24 text

·ͱΊ ‣ Node.js, Google຋༁API, Heroku Ͱ໰୊ͳ͚Ε͹ެࣜ ͦͷ··Ͱ͓खܰʹ࢖͑Δ ‣ ίʔυ΋؆୯Ͱಈ࡞΋͍ܰͷͰFaaSͰͷಈ࡞΋໰୊ແ͠ ‣ AWS Chalice͸୯७ͳ΋ͷΛ࡞Δͷʹ͸खܰͰศར ‣ YandexͷAPI͸Ṗ຋༁͢Δ৔߹΋͋Δ͕खܰ ‣ ֎෦ͷAPIΛݺͼग़͢৔߹͸ॲཧ࣌ؒʹ஫ҙ ‣ ͕͔͔࣌ؒΔ৔߹ʹ͸ඇಉظॲཧʹͯ͠ରԠ͢Δ 24

Slide 25

Slide 25 text

·ͱΊ ‣ ຋༁APIʹؔͯ͠͸Amazon Translateʹظ଴ ‣ Amazon Translate – χϡʔϥϧػց຋༁ – AWS - https://aws.amazon.com/jp/translate/ ‣ AWSͷαʔϏεͰ͋Ε͹SDKΛར༻Ͱ͖Δ ‣ IAMೝূ΋ར༻Ͱ͖ΔͷͰAPIΩʔͷ؅ཧ΋ෆཁͱͳΔ ‣ ֎෦APIʹจࣈྻΛૹ৴͢Δඞཁ͕ͳ͘ͳΔ ‣ ݱࡏ͸ϓϨϏϡʔͳͷͰར༻͍ͨ͠৔߹ʹ͸ਃ੥͕ඞཁ 25

Slide 26

Slide 26 text

Appendix ‣ aws chaliceΛ࢖ͬͯslackͷ຋༁botΛ࡞ͬͯΈͨ #aws #chalice #slack #bot - uchimanajet7ͷϝϞ - http://uchimanajet7.hatenablog.com/entry/2017/12/18/102237 ‣ aws/chalice: Python Serverless Microframework for AWS - https://github.com/aws/chalice ‣ slackapi/reacjilator: A translation bot that translates a message when a user reacted with an emoji ! " # $ % & ' ( ) * + - https://github.com/slackapi/reacjilator ‣ [Japanese] Developing a bot for your workspace ຋༁ϘοτΛ࡞Δ! - https://www.slideshare.net/tomomi/japanese-developing-a-bot-for-your- workspace-82133038 26

Slide 27

Slide 27 text

Appendix ‣ JAWS-UGʢAWS Users Group – Japanʣ - https://jaws-ug.jp/ ‣ SORACOM User Group ͱ͸ - https://pages.soracom.jp/usergroup.html ‣ ޮՌతͳಋೖɾӡ༻ͷͨΊͷ Amazon Web Services׆༻ೖ໳ | ϚΠ φϏϒοΫε - https://book.mynavi.jp/ec/products/detail/id=54224 ‣ Who am I? - https://uchimanajet7.github.io/whoami/ 27