Nouvelles Chroniques d'Amethyste

Penser au Sens, pas au Verbe

Utiliser l’émulateur avec un bot déployé sur Azure ou un serveur distant

Poster un commentaire

On a déployé le bot, sur Azure par exemple, ce qui nous donne un point de terminaison de cette forme:

http://XXXXXXXXXXX.azurewebsites.net/

Il est tentant de connecter l’émulateur directement sur ce point de terminaison plutôt que de lancer localement le bot sur une url en localhost:

2017-03-05_11-48-41

N’oubliez pas de saisir les valeurs AppId et Password.

 

Si on lance une conversation toutefois:

2017-03-05_11-50-25

Le bot ne fonctionne pas très bien.

La raison est que l’activity expose une propriété (ServiceUrl) qui contient l’url du service vers laquelle le bot doit renvoyer ses réponses.

Le service en question est l’émulateur qui est déployé sur une url locale en localhost.

Localhost n’est pas une url routable et le bot est sur Internet. La communication n’est donc pas possible. La seule façon de s’en sortir est de placer un proxy qui se charge de faire la liaison.

 

Les proxies ce n’est pas ce qui manque, mais les concepteurs de Botbuilder préconisent Ngrok.

https://github.com/Microsoft/BotFramework-Emulator/wiki/Getting-Started#connect-to-a-bot-hosted-remotely

Configuration de Ngrok

On trouvera une doc ici:

https://github.com/Microsoft/BotFramework-Emulator/wiki/Tunneling-(ngrok)

 

On commence par télécharger Ngrok:

https://ngrok.com/

Ngrok est un exécutable en ligne de commande, le déploiement est donc on ne peut plus simple. Veillez juste à le déposer dans un meilleurs emplacement que le répertoire Downloads!

 

On configure ensuite l’émulateur pour qu’il sache où trouver Ngrok. Le lien vers la page de configuration nous est fournie par les logs eux-mêmes:

2017-03-05_12-09-51

Qui ouvre:

2017-03-05_12-11-16

 

On déclare le répertoire où Ngrok.exe se trouve, puis SAVE. Et dans les logs il s’affiche:

2017-03-05_12-13-27

Ce qui confirme le démarrage du proxy.

 

Essayez de fermer puis relancer l’émulateur. Vous constaterez qu’il garde sa configuration.

Supposons que vous avez envie de modifier l’emplacement de Ngrok, que fait t’on? Heureusement il y a un menu dans l’interface:

2017-03-05_12-21-14

 

Ngrok est configuré. Réessayons donc.

2017-03-05_12-15-45

 

Ca marche!!!!

 

Important:

La documentation de Botbuilder signale ceci:

L’émulateur ne fonctionne pas avec des versions de Ngrok antérieures à 2.1.18.

Pour connaître sa version il suffit de lancer en ligne de commande:

ngrok -v

 

Bibliographie

 

 

 

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s