Uso de Azure DevOps para crear una canalización de CI/CD para un trabajo de Stream Analytics

En este artículo, aprenderá a crear canalizaciones de compilación y versión de Azure DevOps mediante herramientas de CI/CD de Azure Stream Analytics.

Confirmación del proyecto de Stream Analytics

Antes de comenzar, confirme los proyectos de Stream Analytics completados como archivos de origen para un repositorio de Azure DevOps. Puede hacer referencia a este repositorio de ejemplo y al código fuente del proyecto de Stream Analytics en Azure Pipelines.

En los pasos de este artículo se usa un proyecto de Visual Studio Code para Stream Analytics. Si usa un proyecto de Visual Studio, siga los pasos descritos en Automatización de las compilaciones, las pruebas y las implementaciones de un trabajo de Azure Stream Analytics mediante herramientas de CI/CD.

Creación de una canalización de compilación

En esta sección, aprenderá a crear una canalización de compilación.

  1. Abra un explorador web y vaya al proyecto en Azure DevOps.

  2. En Pipelines, en el menú de navegación izquierdo, seleccione Compilaciones. Luego, seleccione Nueva canalización.

    Create new Azure Pipeline

  3. Seleccione Usar el editor clásico para crear una canalización sin YAML.

  4. Seleccione el tipo de origen, el proyecto del equipo y el repositorio. Después, seleccione Continuar.

    Select Azure Stream Analytics project

  5. En la página Elegir una plantilla, seleccione Trabajo vacío.

Instalación del paquete de npm

  1. En la página Tareas, seleccione el signo más que aparece al lado de Agent job 1. Escriba npm en la búsqueda de tareas y seleccione npm.

    Select npm task

  2. Asigne a la tarea un nombre para mostrar. Cambie la opción Comando a personalizar y escriba el siguiente comando en Comando y argumentos. Deje las restantes opciones predeterminadas.

    install -g azure-streamanalytics-cicd
    

    Enter configurations for npm task

Siga los pasos siguientes si necesita usar el agente hospedado de Linux:

  1. Seleccione la Especificación del agente.

    Screenshot of selecting agent specification.

  2. En la página Tareas, seleccione el signo más que aparece al lado de Agent job 1. Escriba línea de comandos en la búsqueda de tareas y seleccione Línea de comandos.

    Screenshot of searching commandline task.

  3. Asigne a la tarea un nombre para mostrar. Escriba el comando siguiente en Script. Deje las restantes opciones predeterminadas.

    sudo npm install -g azure-streamanalytics-cicd --unsafe-perm=true --allow-root
    

    Screenshot of entering script for cmd task.

Adición de una tarea de compilación

  1. En la página Variables, en Variables de canalización, seleccione + Agregar. Agregue las variables siguientes. Establezca los valores siguientes según sus preferencias:

    Nombre de la variable Valor
    projectRootPath [YourProjectName]
    outputPath Resultados
    deployPath Implementar
  2. En la página Tareas, seleccione el signo más que aparece al lado de Agent job 1. Busque Línea de comandos.

  3. Asigne a la tarea un nombre para mostrar y escriba el siguiente script. Modifique el script con el nombre del repositorio y el nombre del proyecto.

    Nota:

    Se recomienda encarecidamente usar para generar la build --v2 plantilla de ARM para la implementación. La nueva plantilla de ARM tiene menos parámetros, a la vez que conserva la misma funcionalidad que la versión anterior.

    Tenga en cuenta que la plantilla de ARM anterior pronto quedará en desuso; solo las plantillas creadas con build --v2 recibirán actualizaciones y correcciones de errores.

    azure-streamanalytics-cicd build --v2 -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(deployPath)
    

    En la imagen se utiliza como ejemplo un proyecto de Visual Studio Code para Stream Analytics.

    Enter configurations for command-line task visual studio code

Adición de una tarea de prueba

  1. En la página Variables, en Variables de canalización, seleccione + Agregar. Agregue las variables siguientes. Cambie los valores por su ruta de acceso de salida y el nombre del repositorio.

    Nombre de la variable Valor
    testPath Prueba

    Add pipeline variables

  2. En la página Tareas, seleccione el signo más que aparece al lado de Agent job 1. Busque Línea de comandos.

  3. Asigne a la tarea un nombre para mostrar y escriba el siguiente script. Modifique el script con su nombre del archivo de proyecto y la ruta de acceso al archivo de configuración de prueba.

    Para más información sobre cómo agregar y configurar casos de prueba, consulte las instrucciones de pruebas automatizadas.

    azure-streamanalytics-cicd test -project $(projectRootPath)/asaproj.json -outputpath $(projectRootPath)/$(outputPath)/$(testPath) -testConfigPath $(projectRootPath)/test/testConfig.json 
    

    Enter configurations for command-line task

Adición de una tarea de copia de archivos

Se debe agregar una tarea de copia de archivos para copiar el archivo de resumen de prueba y los archivos de la plantilla de Azure Resource Manager en la carpeta de artefactos.

  1. En la página Tareas, seleccione el signo + que aparece al lado de Trabajo de agente 1. Busque Copiar archivos. Luego, escriba las siguientes configuraciones. Al asignar ** a Contenido, se copian todos los archivos de los resultados de prueba.

    Parámetro Entrada
    Nombre para mostrar Copiar archivos a: $(build.artifactstagingdirectory)
    Carpeta de origen $(system.defaultworkingdirectory)/$(outputPath)/
    Contenido **
    Carpeta de destino $(build.artifactstagingdirectory)
  2. Expanda Opciones de control. En Ejecutar esta tarea, seleccione Incluso si una tarea anterior ha dado error, a menos que se haya cancelado la compilación.

    Enter configurations for copy task

Adición de una tarea de publicación de artefactos de compilación

  1. En la página Tareas, seleccione el signo más que aparece al lado de Agent job 1. Busque Publicar artefactos de compilación y seleccione la opción con el icono de flecha negra.

  2. Expanda Opciones de control. En Ejecutar esta tarea, seleccione Incluso si una tarea anterior ha dado error, a menos que se haya cancelado la compilación.

    Enter configurations for publish task

Guardar y ejecutar

Cuando haya terminado de agregar el paquete npm, la línea de comandos y las tareas de copia de archivos y publicación de artefactos de compilación, seleccione Guardar y poner en cola. Cuando se le pida, escriba un comentario de guardado y seleccione Guardar y ejecutar. Puede descargar los resultados de las pruebas de la página Resumen de la canalización.

Comprobación de los resultados de compilación y prueba

El archivo de resumen de pruebas y los archivos de la plantilla de Azure Resource Manager se pueden encontrar en la carpeta Published.

Check build and test result

Check artifacts

Publicación con Azure Pipelines

En esta sección, aprenderá a crear una canalización de versión.

Abra un explorador web y vaya al proyecto de Visual Studio Code de Azure Stream Analytics.

  1. En Pipelines, en el menú de navegación izquierdo, seleccione Versiones. Luego seleccione Nueva canalización.

  2. Seleccione Empezar con un trabajo vacío.

  3. En el cuadro de Artefactos, seleccione + Agregar un artefacto. En Origen, seleccione la canalización de compilación que ha creado y elija Agregar.

    Enter build pipeline artifact

  4. Cambie el nombre de Stage 1 a Deploy job to test environment (Implementar trabajo en entorno de prueba).

  5. Agregue una nueva fase y asígnele el nombre Implementar trabajo en entorno de producción.

Adición de tareas de implementación

Nota:

Override template parameters no es aplicable a las compilaciones ARM --v2, ya que los parámetros se pasan como objetos. Para solucionar esto, se recomienda incluir un script de PowerShell en la canalización para leer el archivo de parámetros como JSON y realizar las modificaciones de parámetro necesarias.

Para obtener más instrucciones sobre cómo agregar el script de PowerShell, consulte ConvertFrom-Json y Update Object en el archivo JSON.

  1. En la lista desplegable de tareas, seleccione Deploy job to test environment (Implementar trabajo en entorno de prueba).

  2. Seleccione el signo + junto a Trabajo de agente y busque implementación de plantilla de ARM. Escriba los siguientes parámetros:

    Parámetro Value
    Nombre para mostrar Implementación de myASAProject
    Suscripción de Azure Elija su suscripción.
    Acción Crear o actualizar grupo de recursos
    Resource group Elija un nombre para el grupo de recursos de prueba que contendrá su trabajo de Stream Analytics.
    Location Elija la ubicación de su grupo de recursos de prueba.
    Ubicación de la plantilla Artefacto vinculado
    Plantilla $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.json
    Parámetros de plantilla $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.json
    Reemplazo de los parámetros de plantilla -<arm_template_parameter> "su valor". Puede definir los parámetros mediante variables.
    Modo de implementación Incremental
  3. En la lista desplegable de tareas, seleccione Implementar trabajo en entorno de producción.

  4. Seleccione el signo + junto a Trabajo de agente y busque implementación de plantilla de ARM. Escriba los siguientes parámetros:

    Parámetro Value
    Nombre para mostrar Implementación de myASAProject
    Suscripción de Azure Elija su suscripción.
    Acción Crear o actualizar grupo de recursos
    Resource group Elija un nombre para el grupo de recursos de producción que contendrá su trabajo de Stream Analytics.
    Location Elija la ubicación del grupo de recursos de producción.
    Ubicación de la plantilla Artefacto vinculado
    Plantilla $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.json
    Parámetros de plantilla $(System.DefaultWorkingDirectory)/_azure-streamanalytics-cicd-demo-CI-Deploy/drop/myASAProject.JobTemplate.parameters.json
    Reemplazo de los parámetros de plantilla -<arm_template_parameter> "su valor"
    Modo de implementación Incremental

Creación de una versión

Para crear una versión, seleccione Crear versión en la esquina superior derecha.

Create a release using Azure Pipelines

Pasos siguientes