/ / Bot fonctionne localement mais ne répond pas sur Bot Service - node.js, azure, cloud, botframework, azure-bot-service

Bot fonctionne localement mais ne répond pas à Bot Service - node.js, azure, cloud, botframework, azure-bot-service

J'ai un bot mis en place pour une intégration continuevia VSTS. Le bot s'exécute sur un plan App Service (j'ai récemment compris que les robots du plan de consommation fonctionnaient comme des fonctions). J'ai un bot fonctionnel dans le cloud à la consommation, mais cela limite ma capacité de développement.

Pour ce bot, j'ai fait un déploiement propre d'une invitebot - mais essayer de l'exécuter dans le cloud a généré une erreur de dialogue. J'ai donc commenté le code Prompt et l'ai transformé en un bot d'écho. Fonctionne toujours bien localement, mais aucune réponse du service. Nous avons essayé de nous connecter à une console Kudu et d’effectuer une installation manuelle de npm, mais cela ne nous a pas aidé. Tenter d’exécuter manuellement le bot dans kudu provoque une erreur de mauvaise demande.

Node version 6.11.2. L'arborescence de fichiers inclut tous les fichiers fournis par Bot Service au moment du déploiement initial, y compris iisnode et web.config.

Voici mon app.js et package.json. Quelqu'un a-t-il rencontré des problèmes avec des robots localement valides ne répondant pas au déploiement du cloud? Des astuces que je n'ai pas essayées?

MISE À JOUR: Cette erreur a été détectée via le flux de journal Azure, mais ne sait pas comment résoudre le problème. Erreur: Demande à "https://state.botframework.com/v3/botstate/webchat/conversations/(snip)"Échec: [500] Erreur de serveur interne à 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"
}
}

Réponses:

0 pour la réponse № 1

Cela a pris une tonne de fouille, mais une fois que j'ai trouvé l'erreur enregistrée, cela m'a conduit à un sujet sur un problème que le Service Bot avait la semaine dernière avec l'environnement d'état de prototypage: https://github.com/Microsoft/BotBuilder/issues/3463

J'ai trouvé quelques impasses en essayant de faire fonctionner mon propre stockage d'état, mais cet article m'a finalement rendu fonctionnel: https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-state-azure-table-storage

Compte de stockage Azure créé, utilisé ci-dessussuperposer cela dans votre bot. Brise le lien vers le service de gestion de l'état du prototypage (apparemment toujours en panne). Une fois cette étape terminée, le chat en ligne fonctionne.