/ / Bot funciona localmente, mas não responde no serviço de bot - node.js, azure, cloud, botframework, azure-bot-service

Bot funciona localmente, mas não responde no serviço de bot - node.js, azure, cloud, botframework, azure-bot-service

Eu tenho um bot configurado para integração contínuavia VSTS. O bot está sendo executado em um plano do Serviço de Aplicativo (só recentemente descobri que bots de plano de consumo são executados como funções). Eu tenho um bot em funcionamento na nuvem no Consumption, mas isso limita minha capacidade de expansão.

Para este bot, eu fiz uma implantação limpa de um promptbot - mas tentando executá-lo na nuvem produziu um erro de diálogo. Então eu comentei o código Prompt e o transformei em um bot de eco. Ainda funciona bem localmente, mas nenhuma resposta do serviço. Tentei entrar em um console do Kudu e executar uma instalação manual do npm, mas isso não ajudou. A tentativa de executar manualmente o bot no kudu causa um erro de solicitação inválida.

Versão do nó 6.11.2. A árvore de arquivos inclui todos os arquivos fornecidos pelo serviço de bot no momento da implantação inicial, incluindo iisnode e web.config.

Aqui está o meu app.js e package.json. Alguém mais se deparou com problemas com bots válidos localmente não respondendo após a implementação da nuvem? Algum truque que eu não tentei?

UPDATE: encontrou este erro disparando através do fluxo de logs do Azure, mas não sabe como corrigi-lo. Erro: solicitação para "https://state.botframework.com/v3/botstate/webchat/conversations/(snip)"falhou: [500] Erro interno do servidor em Request._callback

var dotenv = require("dotenv");
dotenv.load();
var restify = require("restify");
var builder = require("botbuilder");

// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log("%s listening to %s", server.name, server.url);
});

// Create chat connector for communicating with the Bot Framework Service
var connector = new builder.ChatConnector({
appId: process.env.MicrosoftAppId,
appPassword: process.env.MicrosoftAppPassword,
});

// Listen for messages from users
server.post("/api/messages", connector.listen());

var bot = new builder.UniversalBot(connector, function (session, args) {
console.log("Initialized the bot.");
session.send("You said: %s", session.message.text);
});

Package.json:

{
"name": "heretohelp-app",
"version": "1.0.0",
"description": "Azure bot",
"main": "app.js",
"dependencies": {
"applicationinsights": "^0.21.0",
"botbuilder": "^3.9.1",
"botbuilder-azure": "^3.0.2",
"dotenv": "^4.0.0",
"restify": "^5.2.0"
},
"devDependencies": {
"request": "^2.81.0",
"zip-folder": "^1.0.0"
}
}

Respostas:

0 para resposta № 1

Demorou um monte de escavações, mas uma vez que encontrei o erro registrado, ele me levou a um tópico sobre um problema que o Serviço de Bot estava tendo na semana passada com o ambiente de estado de prototipagem: https://github.com/Microsoft/BotBuilder/issues/3463

Eu encontrei alguns becos sem saída tentando obter o meu próprio estado de armazenamento em funcionamento, mas este artigo acabou me funcional: https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-state-azure-table-storage

Conta de armazenamento do Azure criada, usada acima do artigopara colocar isso no seu bot. Interrompe o link para o serviço de gerenciamento de estado de prototipagem (aparentemente ainda quebrado). Depois que essa etapa for concluída, o bate-papo da web funcionará.