앞으로 Alexa 스킬을 만드는 분들에게, 구조를 쭉 씹어 봤다

지금 날씬하고 트렌드한 테마의 Alexa 스킬입니다만, 간단하게 할 수 있다! 라고 합니다.

확실히 그렇습니다만, 개념도 모르게 만드는 것은, 신입 사원이 「이것은 이런 것이니까 하라」라고 불합리한 교육을 받는 것 같은 것이므로,

몇 가지 스킬을 만들어 나 나름대로 이해한 내용을 씹어서 설명하고 싶습니다.

이 개념을 알면, 문제가 일어났을 때, 어디를 보면 좋은가가 재빨리 알까.

그럼 우선 전체의 구성을 살펴보겠습니다.

전체 구성



전체의 구성을 도해하면 이런 느낌입니다.

고급 스킬은 이에 한정되지 않는 경우도 있지만 설명하기 쉽도록 최소한의 구성으로 하고 있습니다.



여기에서 각 블록마다 설명을 해 나갑니다.

프런트 엔드: Alexa developer console



사용자가 말한 내용을 파싱하고 시작할 의도를 결정하는 부분.

요컨대, 발화 내용을 데이터에 떨어뜨리는 부분이군요.

데이터에 떨어진 것을 JSON으로 변환하여 Lambda로 보냅니다.

발화 내용과 관련된 설정은 이 부분을 변경합니다.

백엔드: AWS Lambda



백엔드라고 하면 여러가지 귀찮은 처리를 하는 이미지가 있습니다만, 실은 Lambda측은 룰에 따라서 JSON포맷의 커멘드를 만들고 있을 뿐.

그만큼의 역할이므로, 프런트 엔드로부터 인텐트로 받은 정보를 어떻게 요리하는지를 생각하면 좋을 것입니다.

따라서 어느 정도 언어에 자유도가 있습니다. 저는 파이썬을 공부의 일환으로 사용하고 있습니다.

다만, Alexa 스킬 관계의 기술 정보는 JS를 예로 취하는 것이 많기 때문에, 특별한 이유가 없으면 JS가 좋다고 생각합니다.

디버그 로그: AWS Cloudwatch logs



우수한 로깅 서비스입니다.

JSON에서 교환하고 있는 프런트 엔드와 백엔드 사이의 통신 로그를 자동으로 취해 주는 스그레모노.

의도하지 않은 인텐트가 호출되고 있다는 것은 이것이 없으면 디버깅이 어려울 것입니다.

또, Lambda로 print문을 쓰거나 하면 여기에 기록되기 때문에, 실행 순서나 변수의 내용을 보는데도 사용할 수 있습니다.

필드 테스트 때 등에도 사용할 수 있네요.

요약



심플을 목표로 하기 위해, 매우 섬세한 설명이 되었습니다만, 어느 정도 구성의 전모를 알 수 있으면 다행입니다.

이것을 이해하는지 여부는 개발 속도가 크게 다르다고 생각합니다.

아직도 뛰어난 기술이지만, Amazon이 공식적으로 공개하고 있는 문서의 종류가 상당히 알기 쉽고 우수하기 때문에, 허들을 내려 줍니다.

코드량도 그리 많지 않아서 시작되기 때문에 프로그래밍 연습에 사용해도 좋을지도 모르겠네요.

엔조이스킬 라이프!

좋은 웹페이지 즐겨찾기