CLI 기반 Alexa 스킬 개발에서 ap-northeast-1 리전에서 스킬을 실행하는 단계
동기 부여
ask-cli 사용하면 Lambda의 배포 대상이 us-east-1 리전 고정이므로 ap-northeast-1 리전에 배포하고 싶습니다.
그 때문에 CLI 베이스로 스킬을 개발하는 경우, 배포하는 컴퍼넌트에 의해 이하와 같이 ,이 기사에서 그 절차를 설명합니다.
환경
절차
스킬 배포
먼저
ask
에서 프로젝트를 만듭니다.$ ask new
? Please select the runtime Node.js V8
? List of templates you can choose Hello World
? Please type in your skill name: hello-world
Skill "hello-world" has been created based on the chosen template
위의 예에서는
sls
라는 스킬명으로 디렉토리가 만들어져 거기에 스킬의 병아리가 작성된다.우선 먼저 스킬만을 배포한다.
$ cd hello-world
$ ask deploy -t skill
배포가 성공하면 Skill ID가 표시되지만 이후 단계에서 필요하므로 메모해 둡니다(일단
ask new
대화 모델 배포
계속해서 대화 모델만 배포
$ ask deploy -t model
이 시점에서 Amazon Developer Console을 열면
hello-world
라는 기술이 있는지 확인할 수 있다고 생각합니다.Lambda Function 배포
그런 다음 Serverless Framework를 사용하여 Lambda Function을 배포합니다.
.ask/config
디렉토리에 다음과 같은 내용으로 hello-world
를 작성.custom/lambda
의 개소는 스킬의 배치시에 표시된 Skill ID 로 옮겨놓을 것.lambda/custom/serverless.yml
service: hello-world
provider:
name: aws
region: ap-northeast-1
runtime: nodejs8.10
memorySize: 128
package:
include:
- node_modules/
functions:
main:
handler: index.handler
events:
- alexaSkill: amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
enabled: true
serverless.yml
명령으로 Lambda Function을 배포합니다.$ sls deploy
:
Service Information
service: hello-world
stage: dev
region: ap-northeast-1
:
결과 출력에서
alexaSkill
로 배포되었는지 확인기술 엔드포인트에 Lambda 엔드포인트 등록
AWS 콘솔을 열어 배포된 Function의 ARN을 가져옵니다.
sls
를 편집기에서 편집하고 ap-northeast-1
의 값을 Lambda의 ARN으로 다시 씁니다.skill.json
{
"manifest": {
"publishingInformation": {
"locales": {
"en-US": {
"summary": "Sample Short Description",
"examplePhrases": [
"Alexa open hello world",
"hello",
"help"
],
"name": "hello-world",
"description": "Sample Full Description"
}
},
"isAvailableWorldwide": true,
"testingInstructions": "Sample Testing Instructions.",
"category": "KNOWLEDGE_AND_TRIVIA",
"distributionCountries": []
},
"apis": {
"custom": {
"endpoint": {
"uri": "arn:aws:lambda:ap-northeast-1:xxxxxxxxxxxx:function:hello-world-dev-main"
}
}
},
"manifestVersion": "1.0"
}
}
스킬에 엔드포인트를 반영하기 위해 스킬 배포
$ ask deploy -t skill
이를 위해 개발자 콘솔에서 기술 엔드포인트가 반영되는지 확인
시뮬레이터로 동작 확인
$ ask simulate -l 'en-US' -t 'hello world'
성공적인 응답 JSON이 반환되는지 확인
이제 기술 개발 작업을 CLI 기반으로 진행할 수 있습니다.
사이고에게
마지막으로 조금 자작 npm 패키지를 홍보.
팟캐스트 지원 스킬을 최소 코딩으로 구현하기 위한 npm 패키지를 최근 출시했습니다.
아직 개발중에 부족한 기능이라든지 많습니다만 사용해 봐 감상·요망 등 받을 수 있으면 기쁩니다.
Reference
이 문제에 관하여(CLI 기반 Alexa 스킬 개발에서 ap-northeast-1 리전에서 스킬을 실행하는 단계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/snaka/items/ea56eed3f4f7b3db565e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)