Slide 1

Slide 1 text

AlexaͱLambdaͰ ۈଵ࿈བྷΛ͔ͨͬͨ͠… Go(Un)ConferenceLTେձ@k-kurikuri

Slide 2

Slide 2 text

ΞδΣϯμ • AlexaͱAWS Lambda(Go)Ͱۈଵ࿈བྷ͍ͨ͠ • Ͱ΋͍᪴ͨͷͰஅ೦ͨ͠ • Ͱ΋୅ସҊͰ։ൃͨ͠ͷͰৼΓฦΓ • σϞ • TODOͳͲɺ·ͱΊ

Slide 3

Slide 3 text

։ൃʹࢸΔ͖͔͚ͬ • Amaozon EchoΛߪೖͨ͠ • Alexa Skill։ൃΩοτ͕͋ΓɺΧελϜεΩϧ ΛAWS LambdaͰ࣮૷Ͱ͖Δ • 2018/01ʹެࣜαϙʔτ͞ΕͨGoΛ࢖͍͍ͨ

Slide 4

Slide 4 text

AWS Lambdaͱ͸? • ͍ΘΏΔαʔόʔϨεΞʔΩςΫνϟ • EC2ͷΑ͏ʹৗ࣌αʔόΛՔಇ͢ΔͷͰ͸ͳ ͘ɺΠϕϯτۦಈͰඞཁͳ࣌ʹॲཧΛߦ͏ • ඞཁͳ࣌ʹػೳΛ࢖༻͢ΔͨΊඅ༻͕҆͘͢Ή • Python, Java, Node.js, C#, GoͰ࣮૷Ͱ͖Δ

Slide 5

Slide 5 text

͔ͤͬ͘࡞ΔͳΒ ࣗ෼ͷ໾ʹཱͭ΋ͷΛ

Slide 6

Slide 6 text

ۈଵϝʔϧΛૹΔͷ͕ ࠷ߴʹμϧ͍

Slide 7

Slide 7 text

෍ஂͷத͔Βۈଵ࿈བྷ͍ͨ͠ • ʮΞϨΫαɻମௐෆྑͰ஗ࠁ(or ܽۈ)͢Δɻग़ࣾ͸ 12:00ͷ༧ఆʯ • ͬͦ͘͞Amazon Developer͔ΒLambdaͱAlexaΛɹ ࿈ܞͤͯ͞ΈΔ • Alexa͕εΩϧͷԻ੠ೝࣝͯ͘͠Εͳͯ͘υϋϚϦ • ͦ΋ͦ΋งғؾ։ൃ͕ྑ͘ͳ͍

Slide 8

Slide 8 text

ͬ͞͞ͱAlexa͸அ೦ʂ

Slide 9

Slide 9 text

ํ޲స׵ • ͱʹ͔͘LambdaͰGo࢖͍͍ͨΜ΍ • APIGateway + LambdaͰGmailૹ৴͠Α͏ • ػೳͷ࣮૷͓͚ͯ͠͹ΠϕϯττϦΨʔ͸ɹ ޙͰ΋࿈ܞͰ͖Δ

Slide 10

Slide 10 text

ཧ૝

Slide 11

Slide 11 text

ݱ࣮

Slide 12

Slide 12 text

։ൃπʔϧ • serverless (npm) • goenv • aws-lambda-go • oauth2/google, api/gmail/v1 • IntelliJ + FileWatcher + go fmt

Slide 13

Slide 13 text

serverless (sls) module • CLIͰLambdaͷ։ൃ͕ग़དྷΔnpmϞδϡʔϧ • sls create, sls deployͰςϯϓϨʔτϓϩδΣΫτ ࡞੒͔ΒσϓϩΠ·Ͱ • σϓϩΠͷϑϩʔ͸CloudFormation, S3, Lambda • Node.js, Python, Java͸ϩʔΧϧ։ൃՄೳ

Slide 14

Slide 14 text

Goͷ࣮૷Ͱ٧·ͬͨՕॴ • Golang͔ΒGmailΛૹ৴͢Δ࣌ʹɺSubjectͷ೔ຊޠ͕จࣈ Խ͚͢Δ • DotenvͰ࢖༻͢ΔϑΝΠϧ͸Ϗϧυʹ͸ؚ·Εͳ͍? • depͰ “golang.org/x/oauth2/google”Λensureͯ͠΋ࢀর Ͱ͖ͳ͍ • Go1.9vͰϏϧυͨ͠ޙʹɺbrew upgrade goͰ1.10ʹ্͛ ͨΒϏϧυ͕௨Βͳ͘ͳͬͨ

Slide 15

Slide 15 text

σϞ

Slide 16

Slide 16 text

TODO • ग़ࣾ࣌ؒͱ஗ࠁཧ༝͕ܾΊଧͪͳͷͰɺΦϓγϣϯ ͰࢦఆͰ͖ΔΑ͏ʹ͢Δ • GoͰ٧·ͬͨՕॴ͸1ͭͣͭղফ • ෍ஂ͔Βۈଵ࿈བྷ͢ΔͨΊɺAlexaͷεΩϧ։ൃΛ ଓ͚͍ͨ • ։ൃίετ8hҐ (֓ࢉ)

Slide 17

Slide 17 text

github.com/k-kurikuri/lambda-send-mail

Slide 18

Slide 18 text

͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠