Alexa 기술 개발 중 Warning: Application ID is not set
alexa.APP_ID를 alexa.appId로 수정하면 해결
결론부터 말하면 사양이 바뀐 것 같고, 문자열을 조금 수정하면 Warning이 사라졌습니다.
이하 경위와 해설입니다.
기술 디버깅 중 Warning 발견
Amazon Echo의 Alexa 스킬 처리를
AWS Lambda
에 쓰면서 디버그하고 있었는데, AWS ClowdWatch Management Console
에 어느새 다음 오류가 나오고 궁금해서 조사했습니다.2018-01-28T03:58:29.297Z xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Warning: Application ID is not set
응용 프로그램 ID가 설정되지 않았습니다.
이번 AWS Lambda의 함수 작성시에 선택할 수 있는 설계도인
alexa-skill-kit-sdk-factskill
를 선택해 개발을 시작했습니다만, 아무래도 사양에 변경이 있었던 것 같아 이대로라면 Warning이 되는 것 같습니다. (스킬은 일단 제대로 움직이기 때문에 눈치채기 어렵다!)어디가 Warning의 원인이었는지
alexa-skill-kit-sdk-factskill
를 선택하여 생성된 코드는 다음과 같습니다.index.js
// 一部不要なコメント等を省略しています
// 以下10行目〜15行目付近
'use strict';
const Alexa = require('alexa-sdk');
// 以下の行にスキルの`アプリケーション ID`を指定する必要があります(最初はundefinedですね)
const APP_ID = undefined; // TODO replace with your app ID (OPTIONAL).
// 〜
// (中略)
// 〜
// 以下140目付近〜
exports.handler = function (event, context) {
const alexa = Alexa.handler(event, context);
// 以下の行に上の方で設定したアプリケーションIDが入るようですね
alexa.APP_ID = APP_ID;
// To enable string internationalization (i18n) features, set a resources object.
alexa.resources = languageStrings;
alexa.registerHandlers(handlers);
alexa.execute();
};
alexa.APP_ID
하지만 현재는 사용되고 있지 않는 것 같습니다.다음과 같이
alexa.appId
로 변경하면 Warning이 사라집니다.- alexa.APP_ID = APP_ID; // こちらは現在Warningとなる
+ alexa.appId = APP_ID; // 正しくはこちら
이상으로 ClowdWatch에서 Warning이 사라지는 것을 확인했습니다.
보충: 어플리케이션 ID를 환경 변수로 지정
파일내에 스킬의 어플리케이션 ID를 직접 쓰는 것도 있으므로
AWS Lambda
로 환경 변수를 지정해 기술하는 편이 좋을까 생각합니다.기술
アプリケーションID
는 개발자 콘솔의 Alexa 기술을 관리하는 페이지에서 확인할 수 있습니다.AWS Lambda
의 환경 변수 부분에 다음과 같이 기술했습니다.환경 변수 이름을
ALEXA_APP_ID
, 값에 이전 응용 프로그램 ID를 지정합니다.(TZ는 시간대 설정입니다)
Alexa Skill의
index.js
의 APP_ID 부분에 환경 변수로 지정합니다.index.js
const APP_ID = process.env.ALEXA_APP_ID;
이제 애플리케이션 ID를 직접 작성하지 않아도 됩니다.
Reference
이 문제에 관하여(Alexa 기술 개발 중 Warning: Application ID is not set), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/chochotomason/items/849a436409a4e63ffdc0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)