Amazon Pinpointを用いてEmailやLINE通知を自動化した基盤 / Story of CRM platform using LINE by Amazon Pinpoint

Amazon Pinpointを用いてEmailやLINE通知を自動化した基盤 / Story of CRM platform using LINE by Amazon Pinpoint

【スナックミー】
Real Food(リアルフード)のみからできたおやつのパーソナライズ型サブスクリプションBOX
https://snaq.me

Fed9e45a0fa859739e9d862a35b0a4a6?s=128

hayato miyoshi

October 03, 2019
Tweet

Transcript

  1. Amazon PinpointΛ༻͍ͯEmail΍LINE௨஌Λ ࣗಈԽͨ͠ج൫ 2019.10.03 AWS DevDay Tokyo 2019 C-4 גࣜձࣾεφοΫϛʔ

    CTO & co-founder ࡾ޷ ൏ਓ
  2. • גࣜձࣾεφοΫϛʔ • ࡾ޷ ൏ਓ co-founder & CTO • ౦ژੜ·Ε౦ژҭͪ

    • ݐஙग़਎ΤϯδχΞ • τϥΠΞεϩϯ΍ϚϥιϯΛᅂΉ @miyoshihayato
  3. 1. snaq.me(εφοΫϛʔ) ʹ͍ͭͯ 1,980ԁ (੫ࠐ) 100छҎ্͔Β8छͷ͓΍ͭΛҰਓͻͱΓʹηϨΫτ͓ͯ͠ಧ͚ Real Food͔Β࡞ͬͨɺඒຯͯ͘͠Χϥμʹ༏͍͓͠΍ͭΛ͓ҰਓͻͱΓʹ ΧελϚΠζ͓ͯ͠ಧ͚͢ΔαϒεΫϦϓγϣϯαʔϏε

  4. Mission Vison ৽͍͓͠΍ͭମݧΛ૑଄͠ɺ ͓΍ͭͷ࣌ؒΛՁ஋ͷ͋Δ΋ͷʹ͢Δɻ ਺ඦԯԁن໛ͷ Real FoodεφοΫࢢ৔Λ૑Γɺ ͦͷࢢ৔ͷφϯόʔ1ϒϥϯυͱͳΔɻ ӫཆՁ͕ߴ͘ɺͦΕͰ͍ͯඒຯ͠͞ʹଥڠ͠ͳ͍εφοΫʹΑͬͯɺ͓΍ͭͦͷ΋ͷ࣭Λ্͛Δɻ ·ͨɺϞϊ͚ͩͰ͸ͳ͘ɺ৽͍͓͠΍ͭମݧΛσβΠϯ͠ɺ͓΍ͭͷ࣌ؒͷՁ஋Λ޲্ͤ͞Δɻ

    ͦΕʹΑͬͯɺ͓΍ͭͷ͕࣌ؒ࠼ΓͱͳΓɺ๛͔ͳੜ׆Λ࣮ݱ͢Δɻ Real FoodεφοΫͱ͸ɺܗ͋ΔReal FoodͷΈ͔Β࡞ΒΕͨεφοΫɻ ૉࡐຊདྷ͕࣋ͭӫཆͱඒຯ͠͞Λ࠷େݶʹ׆͔͠ɺਓ޻తͳݪྉ΍Խֶ෺࣭͸࢖Θͳ͍ɻ ӫཆՁ͕ߴ݈͘߁తͰɺͦΕͰ͍ͯඒຯ͠͞ʹଥڠ͸͠ͳ͍ɻ
  5. εφοΫϛʔͷ঎඼։ൃج४ Made From Real Food Խֶ෺࣭ʹཔΒͣɺࣗવͳૉࡐ͔Βඒຯ͠͞ͱӫཆΛҾ͖ग़͢ Create a New Culture

    ৽͍͠৯จԽ΍৯श׳Λ࡞Γग़͠͏Δ Without Compromise ඒຯ͠͞ʹଥڠ͠ͳ͍
  6. υϥΠϑϧʔπɾφοπ τϨΠϧϛοΫε ম͖՛ࢠ νϣί νοϓε ถ՛ ͦͷଞ ϑϧʔπ՛ࢠ قઅʹ߹Θͤͨ঎඼100SKUҎ্Λৗ࣌ࡏݿɻຖ݄10ʙ20%ΛೖΕସ͑ɻ 1.

    snaq.me(εφοΫϛʔ) ʹ͍ͭͯ
  7. 1. snaq.me(εφοΫϛʔ) ʹ͍ͭͯ ੡଄ࢦࣔॻ ࡞੒ ੡଄ ࡏݿొ࿥ ΞαΠϯ ϐοΩϯά ൃૹ

    ੡଄͔Βൃૹ४උ·ͰҰ؏
  8. 1. snaq.me(εφοΫϛʔ) ʹ͍ͭͯ ෼ੳ TOBDLCPY ͓΍ͭͷධՁ/ ϦΫΤετ ৽঎඼։ൃ ͓΍ͭͷA/Bςετ ͓ಧ͚͢Δ͓΍ͭΛܾఆ

  9. ։ൃͷओͳπʔϧ - αʔόʔαΠυ : Ruby on Rails (PHP) - ϑϩϯτΤϯυݴޠ

    : BabelɺҰ෦TypeScript - ϑϩϯτΤϯυ : React, Redux, webpack - UIίϯϙʔωϯτΧλϩά : Storybook - σʔλ෼ੳ : python - σʔλϕʔε : Aurora, DynamoDB - Πϯϑϥ : AWS - ։ൃ؀ڥ : Vagrant, Docker - ϦϙδτϦ؅ཧ : GitHub / codecommit - CI / CDͳͲ : CodePipeLine / jest / RSpec - ίϛϡχέʔγϣϯ : Qiita:Team, Slack
  10. Amazon PinpointΛ༻͍ͯEmail΍LINE௨஌ΛࣗಈԽͨ͠ج൫ͷ࿩ ͔͜͜Βຊ୊΁

  11. ͦ΋ͦ΋ɺͳͥLINE(νϟοτUI)Λ༻͍ͨͷ͔ʁ

  12. 2015೥ͷ૑ۀલ͔ΒҎԼͷΑ͏ʹߟ͍͑ͯ·ͨ͠ • UX͕໌֬ • νϟοτUI͸࿝एஉঁ࢖͑Δ • ͜Ε͔Β͸νϟοτUI͕ϕʔεʹͳΔՄೳੑ͕͋Δ • LINE͔ΒpushͰ͖Δ •

    LINE্ͩͱϑϨΩγϒϧʹUIΛૢΕͳ͍ͷͰwebʹҊ಺͢ΔΑ͏ʹͨ͠
  13. εφοΫϛʔ౰ॳ͸ʁ

  14. ౰ॳ͸

  15. ΍ΓͱΓશͯνϟοτܗࣜ ධՁ΋ϦΫΤετ΋

  16. νϟοτUI͸͍͍ͱ͜Ζ͚ͩ͡Όͳ͍ ໨త͕͔ͬ͠Γ͍ͯ͠Δ৔߹͸ճΓ͘Ͳ͍ ॳճɺॳݟϢʔβʔʹνϟοτͰҊ಺͢Δͱ࢖͍উख޲্ ⭕ ❌ 2प໨(ֶशࡁΈͷUIUX) ❌

  17. CSͱͯ͠ͷίϛϡχέʔγϣϯ1ຊʹ ͦͷͨΊ

  18. LINE Messaging API ༻͍͍ͯΔͷ͕

  19. • اۀͱϢʔβʔͷ૒ํίϛϡχέʔγϣϯ͕Մೳ • ϓογϡϝοηʔδͱԠ౴ϝοηʔδ • 1ର1ɺάϧʔϓͰτʔΫՄೳ • ͞·͟·ͳঢ়گʹ߹ΘͤͨϝοηʔδλΠϓ • ςΩετ

    • ελϯϓ • Ի੠ • ը૾ͳͲ LINE Messaging APIͰͰ͖Δ͜ͱ
  20. ߏ੒ਤ Ϣʔβʔૹ৴ ελοϑૹ৴ ελοϑ΁௨஌ Amazon Route 53 Elastic Load Balancing

    Elastic Load Balancing EC2 EC2 Amazon Aurora
  21. ߏ੒ਤ Ϣʔβʔૹ৴ ελοϑૹ৴ ελοϑ΁௨஌ Amazon Route 53 Elastic Load Balancing

    Elastic Load Balancing EC2 EC2 Amazon Aurora
  22. ߏ੒ਤ Ϣʔβʔૹ৴ ελοϑૹ৴ ελοϑ΁௨஌ Amazon Route 53 Elastic Load Balancing

    Elastic Load Balancing EC2 EC2 Amazon Aurora
  23. ૹड৴Λ෼͚͍ͯΔཧ༝ Ϣʔβʔ͔Βͷϝοηʔδड৴͸ઈରʂམͱͤͳ͍

  24. • αʔϏε͕άϩʔε͢Ε͹ɺCS΋૿΍͢ඞཁ͕͋Δ • Ͳ͜·ͰΞ΢τό΢ϯυ(ελοϑൃ৴)Λߦ͏͔ • ͕ͩɺϢʔβʔͱͷ઀఺͸ଟ͍࣋ͪͨ͘ • ৽͍͠ࢪࡦΛࢼ͍ͨ͠ ͳͲ ՝୊

  25. • αʔϏε͕άϩʔε͢Ε͹ɺCS΋૿΍͢ඞཁ͕͋Δ • Ͳ͜·ͰΞ΢τό΢ϯυ(ελοϑൃ৴)Λߦ͏͔ • ͕ͩɺϢʔβʔͱͷ઀఺͸ଟ͍࣋ͪͨ͘ • ৽͍͠ࢪࡦΛࢼ͍ͨ͠ ͳͲ ՝୊

  26. 1ର1ͷରԠ͸࢒͠ɺ1ରଟΛͰ͖Δ࢓૊Έͷߏங Ϣʔβʔͱ઀͢Δʹ͸1า(௨)໨͕େࣄͳͷͰ

  27. ηάϝϯτର৅ͷ1௨໨͸ awsΛ༻͍ͨγεςϜ ͦͷޙ͸1ର1Ͱ ϝοηʔδͷ΍ΓऔΓ ͜͏͍͏͜ͱ

  28. ηάϝϯτͨ͠Ϣʔβʔ΁഑৴ΛࣗಈԽͰ͖Δج൫͕ཉ͍͠

  29. Amazon Pinpoint

  30. Amazon Pinpoint ͱ͸ Τϯήʔδϝϯτνϟωϧ ϝοηʔδΛͻͱͭͷνϟωϧ͔ɺଟ͘ͷνϟωϧܦ༝ͰૹΔ͔ʹ͔͔ΘΒͣɺੈքதͷԿඦສ΋ͷސ٬ʹ؆୯ Ͱ৴པੑߴ͘ϝοηʔδΛಧ͚Δ͜ͱ͕Ͱ͖·͢ɻ Τϯήʔδϝϯτ؅ཧ ద੾ͳސ٬ʹɺద੾ͳϝοηʔδΛɺద੾ͳλΠϛϯάͰɺద੾ͳνϟωϧΛ௨ͯ͠ૹ͍ͬͯͩ͘͞ɻ ෼ੳ ސ٬ͱوࣾͷΤϯήʔδϝϯτʹؔ࿈ͨ͠σʔλΛू໿ɺՄࢹԽɺΧελϚΠζɻ

    ࢀর : https://aws.amazon.com/jp/pinpoint/
  31. Amazon Pinpoint ͱ͸ Τϯήʔδϝϯτνϟωϧ EϝʔϧɺԻ੠ɺSMSɺϓογϡ௨஌ɺ֦ுػೳ(LINEͳͲ) Τϯήʔδϝϯτ؅ཧ ΩϟϯϖʔϯͷΑ͏ʹಛఆͷର৅ऀηάϝϯτʹૹ৴͢ΔͷͰ͸ͳ͘ɺಛఆͷड৴ऀʹૹ৴͢ΔΦϯσϚϯυϝο ηʔδΛૹΔ͜ͱ΋Մೳ ෼ੳ ސ٬σʔλͷऩूͱཧղɺ͓Αͼσʔλʹج͍ͮͨߦಈɺΤϯήʔδϝϯτͷऔΓ૊ΈͷύϑΥʔϚϯεʹର͠

    ͯɺ͞·͟·ͳ෼ੳ͕Մೳ ࢀর : https://aws.amazon.com/jp/pinpoint/
  32. Amazon Pinpoint ͱ͸ ࢀর : https://docs.aws.amazon.com/ja_jp/aws-mobile/latest/developerguide/mobile-hub-add-aws-mobile-analytics.html

  33. Amazon Pinpoint Ͱemail/push௨஌ ͷϢʔεέʔε AWS Batch Amazon Simple Storage Service

    (S3) Amazon Pinpoint લॲཧ ηάϝϯτͷϢʔβʔΛ S3ʹΞοϓϩʔυ ࣌ؒࢦఆ or ଈ࣌഑৴
  34. • json΍csvϑΝΠϧ͕͋Ε͹GUI͔Βૢ࡞͢Δ͜ͱ΋Մೳ • ࣌ؒࢦఆ or ଈ࣌഑৴͕Մೳ • 1ඵؒʹ0 ~ 25,000௨·Ͱ഑৴଎౓Λม͑Β͑Δ

    • ։෧཰΍Click཰Ҏ֎ͷ෼ੳΛ਺෼Ҏ಺Ͱ෼ੳͯ͘͠ΕΔ • ϑΝωϧ෼ੳ΋Ͱ͖Δ & Amazon Personalize Amazon Pinpointͷخ͍͠ϙΠϯτ ௚ײͰ৮ΕΔ ༧໿഑৴(batchॲཧ)΍ۓٸੑͷߴ͍഑৴(଎ใχϡʔεͳͲ) ΞΫηε਺ΛίϯτϩʔϩͰ͖Δ ͨͩૹΔ͚ͩ͡Όͳ͘ɺͦͷޙͷΞΫγϣϯʹ΋ͭͳ͛ΒΕΔ ͞·͟·ͳCVRௐ͕ࠪՄೳ ϑΝωϧ෼ੳ
  35. Ͳ͏͍͏ߏ੒ਤʹ͠Α͏͔ʁʁ

  36. Email or LINE Ͱ௨஌͍ͨ͠

  37. LINE௨஌Λ͢Δʹ͸AWS LambdaΛ࢖༻ͨ͠ΧελϜνϟωϧͰͰ͖ΔΒ͍͠ ※ ࠓ(2019೥10݄ݱࡏ)͸ύϒϦοΫϕʔλ൛ͳͷͰ࢓༷มߋͷՄೳੑ͋Γ

  38. Amazon Pinpoint͸౦ژϦʔδϣϯͰར༻Ͱ͖ͳ͍ ※ ࠓ(2019೥10݄ݱࡏ)

  39. Amazon PinpointΛىಈͤ͞Δʹ͸Ͳ͏͠Α͏ σʔλ͸౦ژϦʔδϣϯʹ͋Δ

  40. AWS Step FunctionsͰ؅ཧͰ͖Δʁ AWS Lambda͸ʁ

  41. AWS Step Functions΍AWS Lambda͸ϦʔδϣϯؒΛͭͳ͛ΒΕͳ͍

  42. ҟͳΔϦʔδϣϯͷAWS LambdaΛར༻͢Δํ๏͕͋Δ ࢀর : https://dev.classmethod.jp/cloud/trigger-lambda-on-other-regions/

  43. • ϢʔβʔΞϓϦέʔγϣϯͷݺͼग़͠͸ɺPC/αʔόʔ্ͷAWS SDK·ͨ͸εϚʔτ ୺຤্ͷAWS Mobile SDKͰՄೳ • AWSͷ௨஌αʔϏεͰ͋ΔSNSͷ௨஌ઌͱͯ͠AWS LambdaΛࢦఆ͢Δ •

    S3 Cross-Region ReplicationͰAWS Lambdaؔ਺ͱಉ͡ϦʔδϣϯʹόέοτΛෳ੡ ͠ɺෳ੡όέοτʹAWS Lambda΁ͷΠϕϯτ௨஌Λઃఆ͢Δ ҟͳΔϦʔδϣϯͷAWS LambdaΛར༻͢Δํ๏ ࢀর : https://dev.classmethod.jp/cloud/trigger-lambda-on-other-regions/
  44. • ϢʔβʔΞϓϦέʔγϣϯͷݺͼग़͠͸ɺPC/αʔόʔ্ͷAWS SDK·ͨ͸εϚʔτ ୺຤্ͷAWS Mobile SDKͰՄೳ • AWSͷ௨஌αʔϏεͰ͋ΔSNSͷ௨஌ઌͱͯ͠AWS LambdaΛࢦఆ͢Δ •

    S3 Cross-Region ReplicationͰAWS Lambdaؔ਺ͱಉ͡ϦʔδϣϯʹόέοτΛෳ੡ ͠ɺෳ੡όέοτʹAWS Lambda΁ͷΠϕϯτ௨஌Λઃఆ͢Δ ҟͳΔϦʔδϣϯͷAWS LambdaΛར༻͢Δํ๏͕͋Δ ࢀর : https://dev.classmethod.jp/cloud/trigger-lambda-on-other-regions/
  45. ηάϝϯτ৘ใ͔Β഑৴·Ͱͷϑϩʔ͸AWS Step FunctionsͰ͍ͨ͠

  46. Amazon Pinpoint ηάϝϯτΛΠϯϙʔτ͢Δʹ࣌ؒΛཁ͢Δ(௕࣌ؒͰ͸ͳ͍)

  47. ΧελϜνϟωϧͰىಈ͞ΕͨAWS Lambda͸50໊෼Ͱ1Lambdaىಈ͢Δ

  48. • σʔλϕʔε͕౦ژϦʔδϣϯͷͨΊLambdaܦ༝ͰPinpointΛىಈͰ͖ͳ͍ • ഑৴ͷϫʔΫϑϩʔΛStep FunctionsΛ༻͍Δ༧ఆ͕Ϧʔδϣϯؒ͸setͰ͖ͳ͍ • ηάϝϯτͨ͠δϣϒΛΠϯϙʔτ׬ྃʹ͕͔͔࣌ؒΔ • ࠷ޙͷLINE഑৴࣌Ͱ͸഑৴ਓ਺ /

    50໊෼ͷLambda্ཱ͕͕ͪΔ • ଐੑͷίϯτϩʔϧ AWS LambdaͱࣗಈԽʹ൐͏՝୊ ΦϨΰϯͳͲಉϦʔδϣϯ಺Ͱ͋Ε͹ىಈՄೳ Pinpointͷϑϩʔ͚ͩStep FunctionsΛ༻͍ΔͳͲ Πϯϙʔτ׬ྃΛϙʔϦϯά͢Δඞཁ͕͋Δ ্ݶ؇࿨·ͨ͸ಉ࣌ʹ50,000ਓʹૹΒͳ͚Ε͹جຊ໰୊ͳ͍ ଐੑ͸40ݸ·ͰͳͷͰɺܭըతͳઃܭ͕ඞཁ
  49. AWS Step Functions Amazon S3 AWS Lambda AWS Lambda Amazon

    DynamoDB AWS Lambda AWS Lambda AWS Lambda DONE import? ഑৴ ϑϩʔ Amazon Simple Notification Service Tokyo Region (ap-northeast-1) Oregon Region (us-west-2) AWS Batch
  50. AWS Step Functions Amazon S3 AWS Lambda AWS Lambda Amazon

    DynamoDB AWS Lambda AWS Lambda AWS Lambda DONE import? ഑৴ ϑϩʔ Amazon Simple Notification Service Tokyo Region (ap-northeast-1) Oregon Region (us-west-2) AWS Batch ౦ژϦʔδϣϯ
  51. AWS Step Functions Amazon S3 AWS Lambda AWS Lambda Amazon

    DynamoDB AWS Lambda AWS Lambda AWS Lambda DONE import? ഑৴ ϑϩʔ Amazon Simple Notification Service Tokyo Region (ap-northeast-1) Oregon Region (us-west-2) AWS Batch ΦϨΰϯϦʔδϣϯ
  52. AWS Step Functions Amazon S3 AWS Lambda AWS Lambda Amazon

    DynamoDB AWS Lambda AWS Lambda AWS Lambda DONE import? ഑৴ ϑϩʔ Amazon Simple Notification Service Tokyo Region (ap-northeast-1) Oregon Region (us-west-2) AWS Batch Ϣʔβʔηάϝϯτͨ͠σʔλΛ S3ʹputͰSNSΛணՐ SNS͸Ϧʔδϣϯؒ͸ؔ܎ͳ͍ͷͰɺ Step Functions Λىಈͤ͞Δ Amazon PinpointΛ༻͍ͯ഑৴
  53. AWS Step Functions Amazon DynamoDB AWS Lambda AWS Lambda AWS

    Lambda DONE import? ഑৴ AWS Step Functions Step Functionsͷελʔτ͸ DynamoDB͔Β഑৴͢Δ pinpointͷΞϓϦέʔγϣϯΛ औಘ͢Δ import͞ΕͨJSONσʔλΛ ݩʹηάϝϯτΛ࡞੒ ഑৴͢ΔνϟωϧλΠϓ͔Β ΧελϜνϟωϧ ඪ४Λऔಘ͢Δ importޙ͸݅਺͕ଟ͘ͳΔͱ importʹ͕͔͔࣌ؒΔ(਺࣌ؒ Ͱ͸ͳ͍ͳ͍) ͦͷͨΊɺimport͕׬͔ྃͨ͠ ఆظνΣοΫ͢Δඞཁ͋Γ ׬ྃޙΩϟϯϖʔϯͷੜ੒ ΧελϜͷ৔߹͸ ΧελϜνϟωϧͰ഑৴͢Δ LambdaΛىಈͤ͞Δ
  54. AWS Step Functions Amazon DynamoDB AWS Lambda AWS Lambda AWS

    Lambda DONE import? ഑৴ AWS Step Functions Step Functionsͷελʔτ͸ DynamoDB͔Β഑৴͢Δ pinpointͷΞϓϦέʔγϣϯΛ औಘ͢Δ import͞ΕͨJSONσʔλΛ ݩʹηάϝϯτΛ࡞੒ ഑৴͢ΔνϟωϧλΠϓ͔Β ΧελϜνϟωϧ ඪ४Λऔಘ͢Δ importޙ͸݅਺͕ଟ͘ͳΔͱ importʹ͕͔͔࣌ؒΔ(਺࣌ؒ Ͱ͸ͳ͍ͳ͍) ͦͷͨΊɺimport͕׬͔ྃͨ͠ ఆظνΣοΫ͢Δඞཁ͋Γ ׬ྃޙΩϟϯϖʔϯͷੜ੒ ΧελϜͷ৔߹͸ ΧελϜνϟωϧͰ഑৴͢Δ LambdaΛىಈͤ͞Δ
  55. AWS Lambda ഑৴ AWS Step Functions ׬ྃޙΩϟϯϖʔϯͷੜ੒ ΧελϜͷ৔߹͸ ΧελϜνϟωϧͰ഑৴͢Δ LambdaΛىಈͤ͞Δ

    import os import json import boto3 def lambda_handler(event, context): s3 = boto3.client(‘s3') # ϝοηʔδ಺༰ msg = event["Message"]["smsmessage"]["body"] arr = json.loads(msg) # ΤϯυϙΠϯτҰཡ endpoints = event["Endpoints"] for item in endpoints: # ΤϯυϙΠϯτ line_id = endpoints[item][‘Address'] # ഑৴΁
  56. S3ͷߏ଄ߏ੒ json : ഑৴σʔλҰཡ email_format : ഑৴಺༰ ഑৴͢Δ্Ͱ؅ཧ͠΍͍͢ Α͏ʹઃఆ ͳͷͰɺձࣾํ਑Ͱ͓೚ͤ

    email: ϝʔϧ഑৴ line: LINE഑৴ email_line: ϝʔϧ & LINE഑৴ xxxxʹ͸ line: LINE഑৴ͷϑΥʔϚοτ html: ϝʔϧͷHTMLܕ txt: ϝʔϧςΩετܕ title: ϝʔϧλΠτϧ Amazon S3 s3:// BUCKET_NAME / format / ਌ΧςΰϦ / ϒϥϯυ໊ / ഑৴λΠϓ / ࢠΧςΰϦ_xxxx.txt s3:// BUCKET_NAME / json / ਌ΧςΰϦ / ϒϥϯυ໊ /഑৴λΠϓ / ࢠΧςΰϦ / yyyy-mm-dd.json json / format ਌ɾࢠΧςΰϦ ϒϥϯυ໊ ഑৴λΠϓ ࢠΧςΰϦʔ_xxxx.txt ηάϝϯτϑΝΠϧ໊ ഑৴ϑΝΠϧ໊
  57. AWS Lambda LINE ഑৴ AWS Lambda { "text": { "text":

    "xxxxxx" } } ςΩετ ver. ը૾ ver. ΠϝʔδϚοϓ ver. { "image": { "original_content_url": "xxx", "preview_image_url": "yyy" } } { "imagemap":{ "alt_text": "ccccccccccccccccccccc", “base_url": "https://snaq.me", "h": xxx, "w": yyyy, "actions": [ { "uri_text": "https://snaq.me", "type": "uri", "x": 0, "y": 0, "w": aaaaa, "h": bbbbb }…….. ] } }
  58. AWS Step Functions AWS Lambda AWS Lambda ΞϓϦέʔγϣϯ࡞੒ AWS Step

    Functions pinpointͷΞϓϦʔγϣϯ࡞੒ ࡞ΒΕͨΞϓϦέʔγϣϯΛ DynamoDBʹೖΕࠐΉ & ঢ়گnotificationͤ͞Δ ༗ޮޙͷঢ়گΛ Dynamoʹput & ঢ়گΛnotificationͤ͞Δ Amazon DynamoDB AWS Lambda AWS Lambda Amazon DynamoDB ΞϓϦέγϣʔϯͰ EMAILΛ༗ޮʹͤ͞Δ
  59. ௨஌ AWS Step Functions AWS Lambda AWS Lambda ΞϓϦέʔγϣϯ࡞੒ AWS

    Step Functions Amazon DynamoDB AWS Lambda AWS Lambda Amazon DynamoDB { “app_email": "noreply@snaq.me", "app_name": "xxxxxxxxxxx" }
  60. ͜ΕͰ࠷ॳͷϢʔβʔηάϝϯτͷ෦෼ΛೖΕସ͑Δ͚ͩͰࣗಈ഑৴͕Մೳʹ

  61. Amazon PinpointͰቕͬͯ͠·ͬͨ͜ͱ

  62. • ଐੑͷ্ݶΛ௒͑ͯ΋Τϥʔ͕ฦΒͳ͍ • ߏจϛε͸Τϥʔ͕ͩɺର৅߲໨ͷ্ݶจࣈ਺Λ௒͑ͯ΋Τϥʔ͸ฦΒͳ͍ • ଐੑ͕ର৅ϢʔβʔʹΑۭͬͯͷ৔߹ɺCSVͩͱ[]ͱͯ͠࢒Δ͕json͸ฏؾ Amazon PinpointΛቕͬͯ͠·ͬͨ͜ͱ ্ه2ͭ͸ΤϯυϙΠϯτʹର৅ऀ͕͍Δ͔֬ೝ͕ඞཁɻ1ͭͰ΋outͩͱશͯૹΕͳ͍ CSV؅ཧ͸ޙʑϚʔέ͕ѻ͍΍͍͕͢ɺjson͸૊ΈࠐΈ΍͍͢

  63. Amazon Pinpointͷ੍ݶ (ओʹ஫ҙ͕ඞཁͳpoint) Ϧιʔε σϑΥϧτͷ੍ݶ ૿Ճͷର৅ AttributesɺMetricsɺUserAttributes ύϥϝʔ λʹ·ͱΊׂͯΓ౰ͯΒΕͨଐੑ ΞϓϦ͝ͱʹ

    40 ͍͍͑ ଐੑ஋ͷ௕͞ 100 จࣈ ͍͍͑ ಉ͡Ϣʔβʔ ID Λ࣋ͭΤϯυϙΠϯτ Ϣʔβʔ ID ͝ͱʹ 10 ݸͷҰҙ ͷΤϯυϙΠϯτ ͍͍͑ ηάϝϯτͷ࡞੒ʹ࢖༻Ͱ͖ΔσΟϝϯγϣ ϯͷ࠷େ਺ ηάϝϯτ͝ͱʹ 100 ͍͍͑ ηάϝϯτ಺ʹಉҰͷΤϯυϙΠϯτ ॏෳ͸࡟আ͞ΕΔ ͍͍͑
  64. ·ͱΊ • Amazon PinpointͰ͞·͟·ͳνϟωϧ΁௨஌͕Մೳ • ΧελϜνϟωϧΛ༻͍Ε͹LINE഑৴΋Մೳ(β൛ͳͷͰมΘΔ͜ͱ΋) • ଐੑͷ্ݶ͔ΒΞϓϦέʔγϣϯͷ؅ཧํ๏Λߟ͑Δඞཁ͕͋Δ • Τϥʔ͡Όͳ͍͕ૹΕͯͳ͍͜ͱ͕͋ΔͷͰɺ֬ೝͷϑϩʔ͸ඞਢ

    • AWS Step Functionsʹ·ͱΊΔ͜ͱͰҰݩ؅ཧ • Ϧʔδϣϯؒ͸SNSαϒεΫϥΠϒΛ༻͍Δ͜ͱͰεϜʔζʹ
  65. ࠓޙ͍ͨ͜͠ͱ • Amazon PersonalizeΛ༻͍ͯΑΓ֬౓ͷߴ͍௨஌Λ • ͓՛ࢠͷબఆͷڧԽ • OEMઌͷγεςϜ • ύςΟγΤ޲͚ͷ৽঎඼։ൃγεςϜ

    • ࣗಈൃૹ • ධՁΛ͠ͳͯ͘΋ࣗಈͰ޷͖ݏ͍Λ൑அͰ͖Δ࢓૊Έ ͳͲ
  66. ৽͍͓͠΍ͭମݧΛ૑଄͠ɺ ͓΍ͭͷ࣌ؒΛՁ஋ͷ͋Δ΋ͷʹ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ ͝ڵຯ͋Δํ͸ snaq.me (εφοΫϛʔ) ΁