前提
ClovaスキルをLambda上で動かしたい。
構成
API Gateway + Lambda
この構成の設定についてはこちらの記事が詳細に書いてくださっています。
[入門]Clovaスキル(CEK)は作りながら覚えて行く(Lambda使ってコード実装編)
環境
Node.js 8.10
Lambdaでasync
を使えるのは8.10以降
参考: AWS Lambda が Node.js v8.10 をサポート
コード
当初はexpressを使う前提となっていたClova公式SDK(Node.js)ですが、こちらのPRによってexpressを使わずに.lambda()
でシンプルに書けるようになりました。
公式サンプルを.lambda()
を使って書き換えるとこうなります。
const clova = require('@line/clova-cek-sdk-nodejs');
exports.handler = clova.Client
.configureSkill()
.onLaunchRequest(responseHelper => {
responseHelper.setSimpleSpeech({
lang: 'ja',
type: 'PlainText',
value: 'おはよう',
});
})
.onIntentRequest(async responseHelper => {
const intent = responseHelper.getIntentName();
const sessionId = responseHelper.getSessionId();
switch (intent) {
case 'Clova.YesIntent':
// Build speechObject directly for response
responseHelper.setSimpleSpeech({
lang: 'ja',
type: 'PlainText',
value: 'はいはい',
});
break;
case 'Clova.NoIntent':
// Or build speechObject with SpeechBuilder for response
responseHelper.setSimpleSpeech(
clova.SpeechBuilder.createSpeechText('いえいえ')
);
break;
}
})
.onSessionEndedRequest(responseHelper => {
const sessionId = responseHelper.getSessionId();
// Do something on session end
})
.lambda();
その他
公式SDKの使い方
Clova公式SDK(Node.js)の使い方まとめ
公式SDKの基本的な使い方はこちらの記事がわかりやすいです。
(私自身、とても助かりました…!ありがとうございましたm(_ _)m)
Lambda関数の作り方
Clova公式SDK(Node.js)のAWS、Firebaseでの動かし方
使い方まとめと同じ方(@miso_develop )の記事。
API Gateway + Lambdaの設定
[入門]Clovaスキル(CEK)は作りながら覚えて行く(Lambda使ってコード実装編)
GUIでの設定方法。この方は公式ではなくオリジナルのSDKを使ってらっしゃいます。
参考
- Clova Developer Center: Clovaスキル開発コンソール
- clova-cek-sdk-nodejs: Clova公式SDK(Node.js)