[Alexa] 최초의 스킬 개발 @ASK SDK v2 for Node.js
5024 단어 알렉사람다SDKServerlessFrameworkAWS
이 페이지의 개요
ASK SDK v2 for Node.js를 사용한 기술 개발 절차 설명 을 참고로, sdk v1로 스킬을 작성한 적이 있는 필자가 시도했을 때의 주의점을 공유합니다.
ASK SDK v2 for Node.js
설정 방법은 여기 에 있습니다.
핸들러의 정의 방법이 상당히 바뀌고 있다고 생각합니다. Intent 마다 독립시켜 쉬워지고 있는 것 같은.
주의점
기본적으로는, 설명 페이지대로 문제없이 v2를 시험할 수 있었습니다만, 정말로 처음 만지는 분이라면 곤란할지도 모른다 점을 올려 둡니다.
node.js 버전
절차 페이지에서는 다음과 같이 async를 사용합니다. 따라서 Lambda 함수의 런타임은 nodejs8.10을 선택합시다.
exports.handler = async function (event, context) {
관리 콘솔의 경우 기능 설정의 "함수 코드"에서 설정.
아마도 ASK CLI를 사용하여 배포하면 자동으로 최신 런타임이 선택되지 않을 것이라고 생각하지만, Serverless Framework를 사용하고 있으며 현재 최신 버전 (v 1.27.3) 의 node.js 템플릿이라면 6.10이 serverless.yml로 설정되어 있기 때문에 한 번 이끼했습니다.
ErrorHandler 추가
메인의 handler의 정의로, ErrorHandler를 추가하는 addErrorHandlers(ErrorHandler)를 선언하고 있습니다.
# 다른 Handler와 별개로 Error 처리의 정의를 할 수 있게 된 것 같네요.
exports.handler = async function (event, context) {
console.log(`REQUEST++++${JSON.stringify(event)}`);
if (!skill) {
skill = Alexa.SkillBuilders.custom()
.addRequestHandlers(
LaunchRequestHandler,
HelloWorldIntentHandler,
HelpIntentHandler,
CancelAndStopIntentHandler,
SessionEndedRequestHandler,
)
.addErrorHandlers(ErrorHandler)
.create();
}
return skill.invoke(event,context);
}
설명 페이지 내에서 ErrorHandler 선언 설명이 생략된 것 같습니다.
const ErrorHandler = {
canHandle(handlerInput) {
return true;
},
handle(handlerInput) {
return handlerInput.responseBuilder.speak('うまく処理できませんでした。')
.getResponse();
}
};
끝에
v1에서 마이그레이션하거나 호환성을 유지하기 위한 어댑터 도 제공되고 있는 것 같네요. 기존의 스킬을 일부러 재작성할지 어떨지, 메리트/단점은 아직 판별되지 않기 때문에, 새로운 스킬을 v2로 조금 작성해 보고 나서 검토하고 싶습니다.
Reference
이 문제에 관하여([Alexa] 최초의 스킬 개발 @ASK SDK v2 for Node.js), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/second113/items/5f242133d484b082792c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
설정 방법은 여기 에 있습니다.
핸들러의 정의 방법이 상당히 바뀌고 있다고 생각합니다. Intent 마다 독립시켜 쉬워지고 있는 것 같은.
주의점
기본적으로는, 설명 페이지대로 문제없이 v2를 시험할 수 있었습니다만, 정말로 처음 만지는 분이라면 곤란할지도 모른다 점을 올려 둡니다.
node.js 버전
절차 페이지에서는 다음과 같이 async를 사용합니다. 따라서 Lambda 함수의 런타임은 nodejs8.10을 선택합시다.
exports.handler = async function (event, context) {
관리 콘솔의 경우 기능 설정의 "함수 코드"에서 설정.
아마도 ASK CLI를 사용하여 배포하면 자동으로 최신 런타임이 선택되지 않을 것이라고 생각하지만, Serverless Framework를 사용하고 있으며 현재 최신 버전 (v 1.27.3) 의 node.js 템플릿이라면 6.10이 serverless.yml로 설정되어 있기 때문에 한 번 이끼했습니다.
ErrorHandler 추가
메인의 handler의 정의로, ErrorHandler를 추가하는 addErrorHandlers(ErrorHandler)를 선언하고 있습니다.
# 다른 Handler와 별개로 Error 처리의 정의를 할 수 있게 된 것 같네요.
exports.handler = async function (event, context) {
console.log(`REQUEST++++${JSON.stringify(event)}`);
if (!skill) {
skill = Alexa.SkillBuilders.custom()
.addRequestHandlers(
LaunchRequestHandler,
HelloWorldIntentHandler,
HelpIntentHandler,
CancelAndStopIntentHandler,
SessionEndedRequestHandler,
)
.addErrorHandlers(ErrorHandler)
.create();
}
return skill.invoke(event,context);
}
설명 페이지 내에서 ErrorHandler 선언 설명이 생략된 것 같습니다.
const ErrorHandler = {
canHandle(handlerInput) {
return true;
},
handle(handlerInput) {
return handlerInput.responseBuilder.speak('うまく処理できませんでした。')
.getResponse();
}
};
끝에
v1에서 마이그레이션하거나 호환성을 유지하기 위한 어댑터 도 제공되고 있는 것 같네요. 기존의 스킬을 일부러 재작성할지 어떨지, 메리트/단점은 아직 판별되지 않기 때문에, 새로운 스킬을 v2로 조금 작성해 보고 나서 검토하고 싶습니다.
Reference
이 문제에 관하여([Alexa] 최초의 스킬 개발 @ASK SDK v2 for Node.js), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/second113/items/5f242133d484b082792c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
exports.handler = async function (event, context) {
exports.handler = async function (event, context) {
console.log(`REQUEST++++${JSON.stringify(event)}`);
if (!skill) {
skill = Alexa.SkillBuilders.custom()
.addRequestHandlers(
LaunchRequestHandler,
HelloWorldIntentHandler,
HelpIntentHandler,
CancelAndStopIntentHandler,
SessionEndedRequestHandler,
)
.addErrorHandlers(ErrorHandler)
.create();
}
return skill.invoke(event,context);
}
const ErrorHandler = {
canHandle(handlerInput) {
return true;
},
handle(handlerInput) {
return handlerInput.responseBuilder.speak('うまく処理できませんでした。')
.getResponse();
}
};
v1에서 마이그레이션하거나 호환성을 유지하기 위한 어댑터 도 제공되고 있는 것 같네요. 기존의 스킬을 일부러 재작성할지 어떨지, 메리트/단점은 아직 판별되지 않기 때문에, 새로운 스킬을 v2로 조금 작성해 보고 나서 검토하고 싶습니다.
Reference
이 문제에 관하여([Alexa] 최초의 스킬 개발 @ASK SDK v2 for Node.js), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/second113/items/5f242133d484b082792c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)