2019/02/23 JAWS Days 2019 登壇資料
AlexaεΩϧΛ҆৺ɾ҆શʹ։ൃӡ༻͢ΔͨΊͷAWSࣗಈԽιϦϡʔγϣϯΫϥεϝιουגࣜձࣾ ͤʔͷ
View Slide
ࣗݾհ• ਗ਼߶࢙ʢͤʔͷʣ• Ϋϥεϝιουגࣜձࣾ AIιϦϡʔγϣϯ෦ ࡳຈΦϑΟεॴଐ AlexaςΫχΧϧΤόϯδΣϦετ / VUIΞʔΩςΫτ• ࠷ۙAWS Certified Alexa Skill Builder - SpecialtyΛड͚ͯ AWSࢼݧݴޠ͕ͳͯ͘ײಈ
εΩϧΛͲͷΑ͏ʹ࡞͍ͬͯ·͔͢ʁ
؆୯͚ͩʹ༉அ͕ͪ͠ɾ։ൃऀίϯιʔϧʢGUIʣ ͦͷͰͳΜͱͳܾ͘Ίͯ͠·͍͕ͪɾόοΫΤϯυʢLambdaʣ͕1ϖʔδʢindex.jsʣͷΈͰॻ͚ΔαΠζͩͱɺ͍Ͱॻ͍ͯ͠·͍͕͔ͪͭͯͷAWS͕ͦ͏ͩͬͨ
AWSΤϯδχΞϦϯάͷεςοϓΞοϓϚωʔδϝϯτίϯιʔϧͰϙνϙν࡞ΔCLI & APIͰίʔυԽͯ͠ཧ͢ΔόονԽ & ௨ػೳΛՃͯ͠CI/CD͢Δ
AlexaΛίʔυཧ͢ΔϑϩϯτΤϯυଆʢIntent/SlotɺΤϯυϙΠϯτཧ)όοΫΤϯυଆʢ࣮ίʔυʣSMAPI(Skill Management API)ASK CLIAWS Lambda
Codeܑఋ
CodeܑఋΛͬͨAlexaڥߏங
PointɾCodeStar(SAM)Λ͏ͱLambdaͷFunction໊ʹ༨ܭͳpostfix͕ͭ͘ͷ͕ݏ => Apex(SalesForceͷΞϨ͡Όͳ͍ํʣ ΛͬͯLambdaΛDeployɾApexΛೖΕͨDockerΛECRʹηοτ => ΧελϜϏϧυϞσϧͰୟ͘ɾߏங͕͍࣌ؒ(ࣗಈπʔϧ͋Δ͋Δʣ => CodePipelineΛͬͯSNSʹ݁ՌΛ௨ɺ ޙ͖ͳํ๏Ͱ௨͢ΔɾΫϥΠΞϯτʹޙ΄ͲεΩϧτϥϯεϑΝʔ͢Δ͜ͱΛߟྀͯ͠CodeCommitͰͳ͘GithubΛ࠾༻
buildspec.ymlversion: 0.2env:variables:SKILL_NAME: demoSTAGE: devAWS_ACCOUNT_ID: xxxxxxxxxxxxphases:pre_build:commands:- mkdir /root/.ask- "aws s3 sync s3://askconfig-${AWS_ACCOUNT_ID}-${AWS_REGION} /root/.ask/"- cd functions/skill- yarn- cd ../../
buildspec.ymlbuild:commands:- echo Build started on `date`- "/usr/local/bin/apex --env ${STAGE} deploy skill"- "aws lambda add-permission --statement-id 1 --function-name ${SKILL_NAME}_${STAGE} --action lambda:invokeFunction --principal alexa-appkit.amazon.com || true"- cd model- "sh build.${STAGE}.sh"post_build:commands:- echo Build completed on `date`
ෳڥ࡞ͬͯ·͔͢ʁ
ࣄͰΤϯδχΞϦϯά͢Δ࣌ͷجૅ։ൃڥͰ։ൃεςʔδϯάͰ͓٬༷֬ೝɺOKͳΒຊ൪ෆ۩߹εςʔδϯάͰ࠶ݱɺ։ൃڥͰम෮
ຊ൪ڥAmazonνʔϜʹΑΔ৹͕ࠪ͋Δʢ͍͍ͩͨ5ӦۀʣAlexaͰෳڥΛ࡞ΔϙΠϯτόοΫΤϯυίʔυ৹ࠪର֎
AlexaͰෳڥΛ࡞ΔϙΠϯτࣗಈͰΞοϓσʔτ͢ΔͱϑϩϯτͱόοΫʹόʔδϣϯࠩҟ͕ग़Δ
ΤΠϦΞεΛ͏
ΤΠϦΞεΛ༻͍ͨෳڥߏங
ɾεςʔδϯάͱຊ൪ͳΔ͘ಉ͡ʹ͓͖͍ͯͨ͠ͷͰReleaseϒϥϯνΛΘͣmasterʹ౷ҰɾώϡʔϚϯΤϥʔʹΑΔΦϖϛεΛ͙ͨΊΤΠϦΞεͱόʔδϣϯͷඥ͚͋͑ͯखಈͰߦ͏ɾApexͷproject.jsonproject.dev.json / project.prd.jsonͷ2छྨɺconfig(ϩάείʔϓͳͲΛཧʣdev/stg/prdͷ3छྨPoint
ଞʹ͍Ζ͍Ζͬͯ·͕ͦ͢Ε·ͨผͷ
·ͱΊɾࠓ·Ͱͷ։ൃϊϋAlexa։ൃʹͦͷ··͑·͢ɾLambdaόʔδϣχϯάͯ͠ΤΠϦΞεͰཧ͠·͠ΐ͏ɾCodeBuildʹςετπʔϧΛಥͬࠐΜͰCI/CDͰճ͠·͠ΐ͏