nodejs で Microsoft Bot フレームワークを使用してチャットボットを開発しています。これをサーバーレス フレームワークを使用して aws ラムダにデプロイしたいのですが、そのためにはラムダ コールバックを呼び出す必要があります。
メッセージの処理が終了したときにコールバックを取得する方法がわかりません(データを保存し、必要なすべてのメッセージを送信しました)。
応答をシミュレートしてコールバックを呼び出そうとしましたが、うまくいきませんでした。Microsoft ボット フレームワークはメッセージの処理を続けています。現在のハンドラーは次のとおりです。
'use strict';
const DynamoDbStorage = require('./dynamo-db-storage').DynamoDbStorage
let storage = new DynamoDbStorage()
const connector = require('./channel')(storage)
module.exports.message = (event, context, callback) => {
connector.verifyBotFramework(context, getHandler(callback));
};
function getHandler(callback) {
let status = 200
return {
status: (code) => { status = code },
send: (data) => {
const response = {
statusCode: 200,
body: JSON.stringify(data),
};
callback(null, response)
}
}
}
そして、ここに私のchannel.jsがあります
const builder = require('botbuilder');
function getChannel(storage) {
const connector = new builder.ChatConnector({
appId: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD
});
const bot = new builder.UniversalBot(connector, {
storage: storage
});
//Bot logic
//...
return connector
}
module.exports = getChannel;