Creando un Bot en Azure. Publicando.

En esta tercera y penúltima entrada de la serie “creando un bot” vamos a publicar el bot que creamos en el anterior artículo.

Ahora que ya tenemos nuestro chatbot creado (sencillo de momento, pero todo se andará) toca que lo podamos poner a disposición de todo el mundo para que pueda ser usado, de poco nos serviría si no, ¿cierto?

Para empezar, tienes que acceder a tu cuenta de Azure a través de portal.azure.com (si no tienes cuenta, aquí te explico como crear una sin tener que gastar un solo euro)

Crear los servicios

Lo primero que recomiendo es crear un grupo de recursos donde agruparemos todos los recursos que vamos a crear (si no lo creas ahora, se puede crear mas adelante automáticamente, pero me gusta hacerlo a mano para tener mas control de todo el proceso):

Se tiene que asignar un nombre y una región, yo siempre suelo usar Europa Oeste, que es lo mas cercano.

Ahora, si quieres que sea totalmente gratuito, lo que te recomiendo es que te crees, dentro del grupo de recursos, un App Service Plan, ya que cuando creas el bot, si no tienes ninguno te crea uno por defecto que tiene coste (poco, pero tiene). Luego lo puedes cambiar, pero si lo haces así, podrás seleccionar el gratuito directamente.

Al crearlo, selecciona el grupo de recursos que hemos creado previamente y asegúrate de seleccionar un plan F1. Recuerda poner la región en Europa oeste.  Este es el service plan que seleccionaremos mas adelante para el bot.

Ya tenemos lo necesario para crear el Web App Bot.

Al crearlo, hay que poner algunos datos. Pon un nombre que te guste, selecciona el grupo de recursos previamente creado, ubicación, como no Europa oeste. Selecciona el plan F0 que proporciona 10k mensajes al mes, para empezar sobra. Cuando ponga el app name, ten en cuenta que se utiliza para general la URL.

En la sección de Bot template, puedes dejarlo como esta por defecto o puedes seleccionar alguna de las plantillas existentes. Esto es así por que por defecto, al crear el bot, instala una de las plantillas que tiene, luego ya lo sobre-escribiremos con el nuestro.

En la sección de service plan asegúrate de seleccionar el que hemos creado previamente. Si no, como ya he comentado, se puede cambiar mas adelante.

La sección de azure storage no la vamos a utilizar de momento, así que déjala como esta por defecto (o pon un nombre que te guste al servicio que va a crear, como prefieras).

Todo lo demás lo puedes dejar por defecto y crear el Web App Bot.

Cuando se termine de implementar todo, se puede comprobar como ha creado los siguientes servicios:

  • Un Web App Bot, que es el bot en sí mismo.
  • Un App Service, que se encarga de alojar los servicios que hacen funcionar al bot.
  • Un Application Insights, que nos permitirá monitorizar todo lo que le pasa al bot.
  • Una cuenta de almacenamiento, que de momento nosotros no usaremos.

Configurar el bot

Ya están los servicios creados y preparado para alojar nuestro bot, es mas, como hemos visto antes, ya tienen un bot plantilla funcionando. Si vas al Web App Bot y seleccionas la opción “Test in web chat” podrás comprobar su funcionamiento. Esto también servirá cuando publiques tu propio bot.

En la sección de Settings del web app bot podrás configurar algunas cosas del bot:

Lo siguiente que se tiene que hacer es configurar nuestra solución e informarle del ApplicationId y password creados. Cuando creamos un bot, este crea automáticamente una aplicación en el portal de aplicaciones de MS. Sin esto bien configurado nuestro bot no funcionará, y por lo que he podido ver en Google y StackOverflow, es un error bastante común a la hora de desplegar.

Abrimos el web.config de nuestra solución e informamos los valores:

Estos valores los podemos obtener en la sección de application settings:

Ya queda poco. Ahora tenemos que crear una interfaz para que el usuario pueda comunicarse con el bot, por suerte Bot Framework se ocupa de todo y nosotros solo tenemos que aprovecharnos.

En la sección de canales, configuramos los canales en los que queremos distribuir el bot, de momento nos vamos a centrar en la web. Al crear el bot, automáticamente se crea el canal de chat, por lo que solo tenemos que configurarlo.

Selecciona editar en el Web chat creado y podrás ver un código iframe para insertar en tu web y la clave secreta que tenemos que añadirle a dicho código.

Pega este código en la página default.html de la solución:

*Yo en este caso le he asignado alto y ancho a mano para poder ver bien el chat…

Publicar

Ya lo tenemos todo listo para publicar el servicio que hará funcionar el bot (nuestra solución). Esto se publica en el web app que se ha creado anteriormente.

Seleccionando el web app en su sección de “overview” podrás descargar un perfil de publicación. Este fichero lo usaremos luego en Visual Studio.

En Visual Studio, haz clic derecho sobre el proyecto y selecciona “Publicar”.

En la pantalla de publicación, clica sobre la opción de crear un nuevo perfil y selecciona la opción de importar un perfil. Selecciona el fichero que hemos descargado antes y publica.

¡Ya tenemos el bot publicado y funcionado!

Tal vez te suceda que en vez de ver el chatbot funcionando, lo que ves es una pantalla de error como esta:

Eso puede suceder por que la versión del assmbly de Bot.Connector es diferente a la de alguna de sus dependencias. ¿y esto como puede ser si lo acabo de publicar y en local funciona? (tal vez te estés preguntando). Recuerda que al crear el bot, hemos seleccionado una plantilla que se instalaba por defecto, por lo que ya había un bot instalado antes que el nuestro. Si como yo, has actualizado todos lo nuget del proyecto antes de publicar, te pasará que algunas .dll que ya estaban publicadas, se “peleen” con la que acabas de publicar tu.

Yo para arreglar esto, directamente he borrado la carpeta bin que había publicada, y he vuelto a publicar mi versión, con esto se ha solucionado. Para hacerlo, selecciona las herramientas avanzadas del web app y una vez dentro selecciona “Debug console > CMD”, navega hasta “/site/wwwroot” y elimina la carpeta bin.

        

 

Otras entradas de la serie “Creando un bot”:

Creando un Bot en Azure. Introducción.

Creando un Bot en Azure. Microsoft Bot Framework

2 comentarios sobre “Creando un Bot en Azure. Publicando.”

    1. Hola Javier, de momento no se puede (al menos cuando lo revisé la última vez hará un par de meses). Yo creo que es mas por limitaciones del propio Whatsapp, cuando permitan crear bots públicos, como si hace Telegram por ejemplo, supongo que lo añadirán.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *