Aprovisionamiento y publicación de un bot

SE APLICA A: SDK v4

En este artículo se describe cómo usar la CLI de Azure para crear recursos para el bot, preparar el bot para la implementación e implementar el bot en Azure.

En este artículo se supone que tiene un bot listo para su implementación. Para obtener información sobre cómo crear un bot de eco simple, consulta Creación de un bot con el SDK de Bot Framework. También puede usar uno de los ejemplos proporcionados en el repositorio de ejemplos de Bot Framework.

Sugerencia

En este artículo se crea un recurso de Azure Bot para el bot. Los bots existentes que usan un recurso de bot de aplicación web o un recurso de registro de canales de bot seguirán funcionando, pero no puede crear nuevos bots que usen estos tipos de recursos.

Nota:

Los SDK de JavaScript, C# y Python de Bot Framework seguirán siendo compatibles, pero el SDK de Java se va a retirar con la compatibilidad final a largo plazo que finaliza en noviembre de 2023. Solo se realizarán correcciones críticas de seguridad y errores dentro de este repositorio.

Los bots existentes creados con el SDK de Java seguirán funcionando.

Para la creación de nuevos bots, considera el uso de Power Virtual Agents y lee sobre cómo elegir la solución de bot de chat adecuada.

Para obtener más información, consulta El futuro de la creación de bots.

Requisitos previos

  • Para bots de Java, instala Maven.

  • Este proceso usa una plantilla de Resource Manager de Azure (plantilla de ARM) para crear recursos para el bot.

    Si no tiene las plantillas actuales, cree una copia en el proyecto de bot de la carpeta deploymentTemplates: C#, JavaScript, Python o Java.

Para usar la CLI de Azure para aprovisionar y publicar bots, necesitas:

  • Una cuenta de Azure que tenga una suscripción activa. Crear una cuenta gratuita.

  • Una Instalación de la CLI de Azure.

    Para el lenguaje de programación, usa la siguiente versión de la CLI de Azure. Algunos pasos no funcionarán con versiones posteriores de la CLI.

    Lenguaje Versión de la CLI
    C# y JavaScript 2.39.0 o posterior
    Python 2.36.0
    Java 2.29.2

Nota:

Si el bot usa recursos adicionales, como un servicio de almacenamiento o servicios de lenguaje, estos deben implementarse por separado.

Planeamiento de la implementación

Antes de empezar, tome estas decisiones.

Decisión Notas
Cómo se administran las identidades de los recursos del bot en Azure Puede usar una identidad administrada asignada por el usuario, un registro de aplicación de un inquilino único o un registro de aplicación de mutliinquilino. Para obtener más información, consulte Crear un recurso de identidad.
En qué grupo de recursos o grupos de recursos creará los recursos del bot Hasta que esté familiarizado con este proceso, se recomienda usar un grupo de recursos. Para más información, consulte Administración de recursos de Azure.
Si el bot será regional o global Para obtener más información acerca de los bots regionales, consulte Regionalización en Servicio de Bot de Azure AI.

La identidad del bot se puede administrar de varias maneras diferentes en Azure.

  • Como identidad administrada asignada por el usuario, por lo que no es necesario administrar las credenciales del bot usted mismo.
  • Como una aplicación de un inquilino único.
  • Como una aplicación multiinquilino.

La compatibilidad con la identidad administrada asignada por el usuario y los tipos de aplicación de inquilino único se agregó al SDK de Bot Framework para C# y JavaScript en la versión 4.15.0. Estos tipos de aplicaciones no se admiten en los otros lenguajes o en Bot Framework Composer, Bot Framework Emulator o ngrok.

Tipo de aplicación Soporte técnico
Identidad administrada asignada por el usuario Azure AI Bot Service y los SDK de C# y JavaScript
Inquilino único Servicio de Bot de Azure AI y los SDK de C# y JavaScript
Multiinquilino Servicio de Bot de Azure AI, todos los lenguajes del SDK de Bot Framework, Composer, el emulador y ngrok

Importante

Los bots de Python no se pueden implementar en un grupo de recursos que contiene servicios o bots de Windows. Sin embargo, se pueden implementar varios bots de Python en el mismo grupo de recursos. Cree otros servicios, como los servicios de Azure AI, en otro grupo de recursos.

Recursos de Azure

Para poder implementar el bot, cree (o aprovisione) los recursos de Azure que necesitará. Para algunos pasos puede utilizar un recurso existente o crear uno nuevo.

Es posible que le resulte útil decidir con antelación los nombres de los nuevos recursos que creará y los nombres de los recursos existentes que usará. El bot usará estos tipos de recursos.

  • La suscripción de Azure que usará para aprovisionar, publicar y administrar el bot
  • Uno o varios grupos de recursos
  • Una identidad administrada asignada por el usuario o un registro de aplicación de Microsoft Entra ID
  • Un recurso del plan de App Service
  • Un recurso de App Service
  • Un recurso de Azure Bot

Información usada entre recursos

A medida que cree recursos en Azure, Azure generará o solicitará identificadores, contraseñas y otra información que necesitará en pasos posteriores. En la tabla siguiente se muestra la información más allá de los nombres de recursos que necesitará registrar, en qué paso se genera y en qué pasos se usa.

Precaución

Muchos de estos identificadores y contraseñas son información confidencial. Para obtener información general sobre las instrucciones de seguridad, consulte Directrices de seguridad de Bot Framework.

Información Dónde se generó o encontró Donde usado
Id. de inquilino Inicio de sesión y selección de la suscripción Uso de la CLI de Azure para crear un recurso de App Service, Uso de la CLI de Azure para crear o actualizar un recurso de Azure Bot, Actualización de la configuración del proyecto
Tipo de aplicación Crear un recurso de identidad Uso de la CLI de Azure para crear un recurso de App Service, Uso de la CLI de Azure para crear o actualizar un recurso de Azure Bot, Actualización de la configuración del proyecto
Id. de cliente Crear un recurso de identidad Uso de la CLI de Azure para crear un recurso de App Service, Uso de la CLI de Azure para crear o actualizar un recurso de Azure Bot, Actualización de la configuración del proyecto
URL de App Service de base Utilizar CLI de Azure para crear un recurso de App Service Uso de la CLI de Azure para crear o actualizar un recurso de Azure Bot
Nombre de App Service Utilizar CLI de Azure para crear un recurso de App Service Publicación del bot en Azure

Inicio de sesión y selección de la suscripción

  1. Abra el símbolo del sistema.

  2. Inicie sesión en Azure.

    az login
    
    • Se abrirá una ventana del explorador. Complete el proceso de inicio de sesión.
    • Si se ejecuta correctamente, el comando genera una lista de las suscripciones a las que tiene acceso tu cuenta.
  3. Para configurar el uso de la suscripción, ejecuta:

    az account set --subscription "<subscription>"
    

    Para la <suscripción>, use el identificador o el nombre de la suscripción que se va a usar.

  4. Si va a crear una identidad administrada asignada por el usuario o un bot de inquilino único, registre el tenantId para la suscripción. Usarás el identificador del inquilino en los pasos siguientes.

Sugerencia

Si necesitas trabajar en una nube no pública, consulta Administración en la nube de Azure con la CLI de Azure.

Crear grupos de recursos

Si aún no tiene un grupo de recursos adecuado, use el comando az group create para crear los nuevos grupos de recursos que necesita.

az group create --name "<group>" --location "<region>"
Opción Descripción
name El nombre del grupo de recursos que se creará.
ubicación La región en la que se creará el grupo de recursos.

Para más información, consulta Uso de la CLI de Azure para administrar los recursos y grupos de recursos de Azure.

Crear un recurso de identidad

  1. Para crear una identidad administrada asignada por el usuario, use el comando az identity create. Si se ejecuta correctamente, el comando genera la salida JSON.

    az identity create --resource-group "<group>" --name "<identity>"
    
    Opción Descripción
    resource-group El nombre del grupo de recursos en el que se crea la identidad.
    name El nombre del recurso de identidad que se va a crear.

    Para más información, consulte la referencia de identidad de az.

  2. Valores de registro que necesitará en pasos posteriores.

    1. El nombre del grupo de recursos del recurso de identidad
    2. El nombre del recurso de identidad
    3. El clientId de la salida del comando

Creación de recursos con plantillas de ARM

Cree los recursos de App Service y Azure Bot para el bot. Ambos pasos usan una plantilla de ARM y el comando de la CLI de Azure az deployment group create para crear el recurso o los recursos.

  1. Cree un recurso de App Service para el bot. App Service puede estar dentro de un plan de App Service nuevo o existente.

    Para ver los pasos detallados, consulte Uso de la CLI de Azure para crear un App Service.

  2. Creación de un recurso de bot en Azure para el bot.

    Para ver los pasos detallados, consulte Uso de la CLI de Azure para crear o actualizar un bot de Azure.

Importante

Estos pasos se pueden realizar en cualquier orden. Sin embargo, si crea primero el bot de Azure, deberá actualizar su punto de conexión de mensajería después de crear el recurso de App Service.

Actualizar las opciones de configuración del proyecto

Información de identidad del bot

Sigue estos pasos para agregar información de identidad al archivo de configuración del bot. El archivo difiere en función del lenguaje de programación que utilizas para crear el bot.

Importante

Las versiones de Java y Python del SDK de Bot Framework solo admiten bots multiinquilino. Las versiones de C# y JavaScript admiten los tres tipos de aplicación para administrar la identidad del bot.

Lenguaje Nombre de archivo Notas
C# appsettings.json Admite los tres tipos de aplicación para administrar la identidad del bot.
JavaScript .env Admite los tres tipos de aplicación para administrar la identidad del bot.
Java application.properties Solo admite bots multiinquilino.
Python config.py Solo admite bots multiinquilino. Proporcione las propiedades de identidad como argumentos a las llamadas del método os.environ.get.

La información de identidad que necesitas agregar depende del tipo de aplicación del bot. Proporciona los siguientes valores en el archivo de configuración.

Disponible solo para bots de JavaScript y C#.

Propiedad Valor
MicrosoftAppType UserAssignedMSI
MicrosoftAppId Id. de cliente de la identidad administrada asignada por el usuario.
MicrosoftAppPassword No aplicable. Deja esto en blanco para un bot de identidad administrada asignada por el usuario.
MicrosoftAppTenantId El id. de inquilino de la identidad administrada asignada por el usuario.

Prepara los archivos de proyecto

Prepara los archivos de proyecto para implementar el bot.

  1. Cambia a la carpeta raíz del proyecto. Para C#, la raíz es la carpeta que contiene el archivo .csproj.

  2. Realice una recompilación limpia en modo de versión.

  3. Si no lo has hecho antes, ejecuta az bot prepare-deploy para agregar los archivos necesarios a la raíz del directorio de código fuente local. Este comando genera un archivo .deployment en la carpeta del proyecto del bot.

    az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "<my-cs-proj>"
    
    Opción Descripción
    lang Idioma o tiempo de ejecución del bot. Use Csharp.
    code-dir El directorio en el que colocar los archivos generados para implementación. Use la carpeta raíz del proyecto. El valor predeterminado es el directorio actual.
    proj-file-path La ruta de acceso al archivo .csproj del bot, en relación con la opción code-dir.
  4. En la carpeta raíz del proyecto, crea un archivo ZIP que contenga todos los archivos y subcarpetas.

Publicación del bot en Azure

En este momento, está listo para implementar código para el bot en el recurso de App Service.

Nota:

Este paso puede tardar unos minutos en completarse. También puede tardar unos minutos más entre el momento en que finaliza la implementación y el momento en que el bot está disponible para probarlo.

Ejecute el siguiente comando en la línea de comandos para realizar la implementación mediante la implementación de inserción del archivo ZIP de Kudu para su app service (web app).

az webapp deployment source config-zip --resource-group "<resource-group-name>" --name "<name-of-app-service>" --src "<project-zip-path>"
Opción Descripción
resource-group El nombre del grupo de recursos de Azure que contiene el bot.
name Nombre del app service que ha usado anteriormente.
src Ruta de acceso absoluta o relativa al archivo de proyecto comprimido en formato ZIP que ha creado.

Sugerencia

De forma predeterminada, este comando se implementa en el espacio de producción. Utilice el parámetro --slot opcional para especificar un espacio diferente. Para obtener más información, consulte la referencia del comando az webapp deployment source config-zip.

Probar en Chat en web

  1. En el explorador, vaya a Azure Portal.
  2. Vaya al recurso del bot.
  3. Abra el panel Test in Web Chat (Probar en Chat en web).
  4. Interactúa con el bot implementado.

Para más información sobre el registro del bot, consulta Registro de un bot en Bot Service.

Limpieza de recursos

Si no va a publicar esta aplicación, elimine los recursos asociados mediante los siguientes pasos:

  1. En Azure Portal, abra el grupo de recursos del bot.
    1. Haz clic en Eliminar grupo de recursos para eliminar el grupo y todos los recursos que contiene.
    2. Escriba el nombre del grupo de recursos en el panel de confirmación y seleccione Eliminar.
  2. Si has creado una aplicación de un solo inquilino o multiinquilino:
    1. Vaya a la hoja Microsoft Entra ID.
    2. Busca el registro de la aplicación que usaste para el bot y elimínalo.

Recursos adicionales

Consulta estos artículos para más información sobre las aplicaciones y los recursos de Azure que se usan para hospedar un bot.

Asunto Artículo
CLI de Azure ¿Qué es la CLI de Azure?
Administración de suscripciones de Azure Administración de suscripciones de Azure con la CLI de Azure
Regiones de Azure Regiones y zonas de disponibilidad
Administración de recursos y grupos de recursos Administración de recursos de Azure
Identidades administradas ¿Qué son las identidades administradas de recursos de Azure?
Aplicaciones de un solo inquilino y aplicaciones multiinquilino Inquilinos en Microsoft Entra ID
Aplicaciones web App Service
Cálculo de recursos para aplicaciones web Planes de App Service
Plantillas de Azure Resource Manager (plantillas de ARM) ¿Qué son las plantillas de ARM? y Cómo utilizar las plantillas de implementación de Azure Resource Manager (ARM) con la CLI de Azure
Facturación de Azure Facturación y gestión de costes

Archivos Kudu

El comando de implementación de aplicación web usa Kudu para implementar bots de C#, JavaScript y Python. Cuando se usa la API de implementación zip no configurada para implementar el código del bot, el comportamiento es el siguiente:

Kudu supone de forma predeterminada que las implementaciones de los archivos ZIP están listas para ejecutarse y que no necesitan pasos de compilación adicionales durante la implementación como, por ejemplo, la instalación de npm o dotnet restore/dotnet publish.

Es importante incluir el código compilado con todas las dependencias necesarias en el archivo ZIP que se va a implementar, de lo contrario, el bot no funcionará como se espera. Para más información, consulte la documentación de Azure acerca de cómo Implementar archivos en App Service.

Pasos siguientes