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.
Los bots existentes creados con el SDK de Java seguirán funcionando.
Para la nueva compilación de bots, considere la posibilidad de usar Microsoft Copilot Studio y lea sobre cómo elegir la solución de copilot 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.55.0 o posterior 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.
Se ha agregado compatibilidad con la identidad administrada asignada por el usuario y los tipos de aplicación de inquilino único al SDK de Bot Framework para C#, JavaScript y Python. Estos tipos de aplicaciones no se admiten en los otros lenguajes o en Bot Framework Composer, Bot Framework Emulator o Túneles de desarrollo.
Tipo de aplicación | Soporte técnico |
---|---|
Identidad administrada asignada por el usuario | Azure AI Bot Service y los SDK de C#, JavaScript y Python |
Inquilino único | Azure AI Bot Service y los SDK de C#, JavaScript y Python |
Multiinquilino | Azure AI Bot Service, todos los lenguajes del SDK de Bot Framework, Composer, el emulador y los túneles de desarrollo |
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.
Inicio de sesión y selección de la suscripción
Abra el símbolo del sistema.
Inicie de 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.
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.
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 |
---|---|
nombre | 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
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. nombre El nombre del recurso de identidad que se va a crear. Para más información, consulte la referencia de identidad de az.
Valores de registro que necesitará en pasos posteriores.
- El nombre del grupo de recursos del recurso de identidad
- El nombre del recurso de identidad
- 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.
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.
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
La versión de Java del SDK de Bot Framework solo admite bots multiinquilino. Las versiones de C#, JavaScript y Python 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 | Admite los tres tipos de aplicación para administrar la identidad del bot. |
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 para bots de C#, JavaScript y Python.
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.
Cambia a la carpeta raíz del proyecto. Para C#, la raíz es la carpeta que contiene el archivo .csproj.
Realice una recompilación limpia en modo de versión.
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
.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 az webapp deploy
comando desde la línea de comandos para realizar la implementación mediante la implementación de inserción zip de Kudu para el servicio de aplicaciones (aplicación web).
Opción | Descripción |
---|---|
resource-group | El nombre del grupo de recursos de Azure que contiene el bot. |
nombre | 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 documentación de referencia de az webapp deploy
comandos.
Probar en Chat en web
- En el explorador, vaya a Azure Portal.
- Vaya al recurso del bot.
- Abra el panel Test in Web Chat (Probar en Chat en web).
- 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:
- En Azure Portal, abra el grupo de recursos del bot.
- Haz clic en Eliminar grupo de recursos para eliminar el grupo y todos los recursos que contiene.
- Escriba el nombre del grupo de recursos en el panel de confirmación y seleccione Eliminar.
- Si has creado una aplicación de un solo inquilino o multiinquilino:
- Vaya a la hoja Microsoft Entra ID.
- 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.