Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Alexaスキルを安心安全に開発運用するためのAWS自動化ソリューション
chao2suke
February 23, 2019
Technology
0
180
Alexaスキルを安心安全に開発運用するためのAWS自動化ソリューション
2019/02/23 JAWS Days 2019 登壇資料
chao2suke
February 23, 2019
Tweet
Share
More Decks by chao2suke
See All by chao2suke
chao2suke
0
910
chao2suke
0
690
chao2suke
0
650
chao2suke
0
560
chao2suke
0
97
chao2suke
0
1.3k
chao2suke
0
1k
chao2suke
0
1.5k
chao2suke
0
320
Other Decks in Technology
See All in Technology
swoon
1
610
yunoda
0
130
line_developers
PRO
0
180
udonyuya
1
520
legalforce
PRO
4
220
sansandsoc
2
790
mizzy
2
130
karamem0
1
760
lmi
3
1.1k
soracom
0
170
pohjus
0
3.3k
dena_tech
9
2.3k
Featured
See All Featured
reverentgeek
27
2k
orderedlist
PRO
328
36k
rmw
11
810
colly
66
3k
keavy
107
14k
garrettdimon
288
110k
roundedbygravity
242
21k
colly
188
14k
chriscoyier
145
20k
productmarketing
6
720
lara
15
2.7k
geoffreycrofte
21
920
Transcript
AlexaεΩϧΛ ҆৺ɾ҆શʹ։ൃӡ༻͢ΔͨΊͷ AWSࣗಈԽιϦϡʔγϣϯ Ϋϥεϝιουגࣜձࣾ ͤʔͷ
ࣗݾհ • ਗ਼߶࢙ʢͤʔͷʣ • Ϋϥεϝιουגࣜձࣾ 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
CLI AWS Lambda
Codeܑఋ
CodeܑఋΛͬͨ Alexaڥߏங
Point ɾCodeStar(SAM)Λ͏ͱLambdaͷFunction໊ʹ ༨ܭͳpostfix͕ͭ͘ͷ͕ݏ => Apex(SalesForceͷΞϨ͡Όͳ͍ํʣ ΛͬͯLambdaΛDeploy ɾApexΛೖΕͨDockerΛECRʹηοτ => ΧελϜϏϧυϞσϧͰୟ͘ ɾߏங͕͍࣌ؒ(ࣗಈπʔϧ͋Δ͋Δʣ
=> CodePipelineΛͬͯSNSʹ݁ՌΛ௨ɺ ޙ͖ͳํ๏Ͱ௨͢Δ ɾΫϥΠΞϯτʹޙ΄Ͳ εΩϧτϥϯεϑΝʔ͢Δ͜ͱΛߟྀͯ͠ CodeCommitͰͳ͘GithubΛ࠾༻
buildspec.yml version: 0.2 env: variables: SKILL_NAME: demo STAGE: dev AWS_ACCOUNT_ID:
xxxxxxxxxxxx phases: pre_build: commands: - mkdir /root/.ask - "aws s3 sync s3://askconfig-${AWS_ACCOUNT_ID}-${AWS_REGION} /root/.ask/" - cd functions/skill - yarn - cd ../../
buildspec.yml build: 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.json project.dev.json / project.prd.jsonͷ2छྨɺ config(ϩάείʔϓͳͲΛཧʣ
dev/stg/prdͷ3छྨ Point
ଞʹ͍Ζ͍Ζͬͯ·͕͢ ͦΕ·ͨผͷ
·ͱΊ ɾࠓ·Ͱͷ։ൃϊϋ Alexa։ൃʹͦͷ··͑·͢ ɾLambdaόʔδϣχϯάͯ͠ ΤΠϦΞεͰཧ͠·͠ΐ͏ ɾCodeBuildʹςετπʔϧΛಥͬࠐΜͰ CI/CDͰճ͠·͠ΐ͏