Implementación continua con Azure DevOps
Importante
Comandos personalizados se retirará el 30 de abril de 2026. Desde el 30 de octubre de 2023 no se puede crear nuevas aplicaciones de Comandos personalizados en Speech Studio. En relación con este cambio, LUIS se retirará el 1 de octubre de 2025. Desde el 1 de abril de 2023, no se pueden crear nuevos recursos de LUIS.
En este artículo, aprenderá a configurar la implementación continua para sus aplicaciones de Comandos personalizados. Se le proporcionarán los scripts para admitir el flujo de trabajo de CI/CD.
Requisito previo
- Una aplicación de Comandos personalizados para desarrollo (DEV)
- Una aplicación de Comandos personalizados para producción (PROD)
- Suscribirse a Azure Pipelines
Exportación, importación, publicación
Los scripts están hospedados en la carpeta Asistente de voz: comandos personalizados. Clone los scripts del directorio de Bash de su repositorio. Asegúrese de conservar la misma ruta de acceso.
Configuración de una canalización
Vaya a Azure DevOps: Pipelines y seleccione "Nueva canalización"
En la sección Conectar, seleccione la ubicación del repositorio en el que se encuentran estos scripts.
En la sección Seleccionar, seleccione el repositorio.
En la sección Configurar, seleccione "Canalización inicial".
A continuación, se muestra un editor con un archivo YAML, y debe reemplazar la sección "steps" por este script.
steps: - task: Bash@3 displayName: 'Export source app' inputs: targetType: filePath filePath: ./bash/export.sh arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(SourceAppId) -f ExportedDialogModel.json' workingDirectory: bash failOnStderr: true - task: Bash@3 displayName: 'Import to target app' inputs: targetType: filePath filePath: ./bash/import.sh arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId) -f ExportedDialogModel.json' workingDirectory: bash failOnStderr: true - task: Bash@3 displayName: 'Train and Publish target app' inputs: targetType: filePath filePath: './bash/train-and-publish.sh' arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId)' workingDirectory: bash failOnStderr: true
Estos scripts suponen que usa la región
westus2
; en caso contrario, actualice los argumentos de las tareas según correspondaEn el botón "Guardar y ejecutar", abra la lista desplegable y haga clic en "Guardar"
Establecimiento de un enlace entre la canalización y la aplicación
Diríjase a la página principal de la canalización.
En la lista desplegable de la esquina superior derecha, seleccione Editar la canalización. Se mostrará un editor de YAML.
En la esquina superior derecha, junto al botón "Ejecutar", seleccione Variables. Seleccione Nueva variable.
Agregue estas variables:
Variable Descripción SourceAppId Id. de la aplicación de desarrollo TargetAppId Id. de la aplicación de producción SubscriptionKey Clave usada para ambas aplicaciones Referencia cultural Referencia cultural de las aplicaciones (inglés de Estados Unidos) Seleccione "Ejecutar" y, a continuación, seleccione el "Trabajo" en ejecución.
Debería aparecer una lista de tareas en ejecución que contiene lo siguiente: "Exportar aplicación de origen", "Importar a la aplicación de destino" y "Entrenar y publicar aplicación de destino"
Implementación desde el código fuente
En caso de que quiera conservar la definición de la aplicación en un repositorio, le proporcionaremos los scripts para las implementaciones desde el código fuente. Dado que los scripts están en Bash, si usa Windows, deberá instalar el subsistema de Linux.
Los scripts están hospedados en la carpeta Asistente de voz: comandos personalizados. Clone los scripts del directorio de Bash de su repositorio. Asegúrese de conservar la misma ruta de acceso.
Preparación del repositorio
Cree un directorio para la aplicación; en nuestro ejemplo, cree uno denominado "apps".
Actualice los argumentos en el siguiente script de Bash y ejecútelo. Se importa el modelo de diálogo de la aplicación en el archivo myapp.json
bash/export.sh -r <region> -s <subscriptionkey> -c en-us -a <appid> -f apps/myapp.json
Argumentos Descripción region Su región del recurso de Voz. Por ejemplo: westus2
subscriptionkey Clave del recurso de Voz. appid el id. de la aplicación de Comandos personalizados que quiere exportar. Inserte estos cambios en el repositorio.
Configuración de una canalización
Vaya a Azure DevOps: Pipelines y seleccione "Nueva canalización"
En la sección Conectar, seleccione la ubicación del repositorio en el que se encuentran estos scripts.
En la sección Seleccionar, seleccione el repositorio.
En la sección Configurar, seleccione "Canalización inicial".
A continuación, se muestra un editor con un archivo YAML, y debe reemplazar la sección "steps" por este script.
steps: - task: Bash@3 displayName: 'Import app' inputs: targetType: filePath filePath: ./bash/import.sh arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId) -f ../apps/myapp.json' workingDirectory: bash failOnStderr: true - task: Bash@3 displayName: 'Train and Publish app' inputs: targetType: filePath filePath: './bash/train-and-publish.sh' arguments: '-r westus2 -s $(SubscriptionKey) -c $(Culture) -a $(TargetAppId)' workingDirectory: bash failOnStderr: true
Nota:
Estos scripts suponen que usa la región westus2; en caso contrario, actualice los argumentos de las tareas según corresponda.
En el botón "Guardar y ejecutar", abra la lista desplegable y haga clic en "Guardar"
Establecimiento de un enlace entre la canalización y las aplicaciones de destino
Diríjase a la página principal de la canalización.
En la lista desplegable de la esquina superior derecha, seleccione Editar la canalización. Se mostrará un editor de YAML.
En la esquina superior derecha, junto al botón "Ejecutar", seleccione Variables. Seleccione Nueva variable.
Agregue estas variables:
Variable Descripción TargetAppId Id. de la aplicación de producción SubscriptionKey Clave usada para ambas aplicaciones Referencia cultural Referencia cultural de las aplicaciones (inglés de Estados Unidos) Seleccione "Ejecutar" y, a continuación, seleccione el "Trabajo" en ejecución. Debería aparecer una lista de tareas en ejecución que contiene lo siguiente: "Importar aplicación" y "Entrenar y publicar aplicación"