Учитывая, что вам нужны обновления в режиме реального времени, есть 2 решения:
Через CosmosDB
В этой статье объясняется, как настроить хранилище разговоров. в CosmosDB.
var docDbClient = new azure.DocumentDbClient(documentDbOptions);
var tableStorage = new azure.AzureBotStorage({ gzipData: false }, docDbClient);
Когда у вас есть данные, хранящиеся там, вы можете либо выполнить пакетное задание, которое экспортирует в MySQL на основе cron, либо использовать ленту изменений . Таким образом, для каждой записи в CosmosDB вы будете делать INSERT в MySQL, используя функцию Azure.
Через промежуточное ПО
В приложении конечной точки обмена сообщениями перехватывайте все входящиеи исходящие сообщения с использованием промежуточного программного обеспечения. Подробнее в этой статье .
server.post('/api/messages', connector.listen());
var bot = new builder.UniversalBot(connector);
bot.use({
botbuilder: function (session, next) {
myMiddleware.saveIncomingMessage(session, next);
},
send: function (event, next) {
myMiddleware.saveOutgoingMessage(event, next);
}
})
. Затем сделайте INSERT для каждого сообщения:
module.exports = {
saveIncomingMessage: function (session, next) {
// INSERT session.message.text
next();
},
saveOutgoingMessage: function (event, next) {
// INSERT event.text;
next();
}
}
Я предпочитаю использовать промежуточное ПО, поскольку оно имеет меньшедвижущиеся части.