Compartir a través de


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

En este artículo, usted aprenderá a crear pipelines de Azure DevOps build y release mediante herramientas de CI/CD de Azure Stream Analytics.

Confirmación del proyecto de Stream Analytics

Antes de empezar, confirme los proyectos de Stream Analytics completos como archivos de origen en un repositorio Azure DevOps. Puede hacer referencia a este repositorio de muestra y código fuente del proyecto Stream Analytics en Azure Pipelines.

Los pasos de este artículo usan un proyecto de Visual Studio Code de Stream Analytics. Si está utilizando un proyecto de Visual Studio, automatice las compilaciones, pruebas e implementaciones de un trabajo de Azure Stream Analytics mediante herramientas de CI/CD siguiendo los pasos descritos en Automate builds, tests, and deployments of an Azure Stream Analytics job using CI/CD tools.

Crear 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. A continuación, seleccione Nueva canalización.

    Captura de pantalla de la página de compilaciones de Azure Pipelines que muestra que no se encontró ninguna canalización de compilación y un botón de nuevo 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. A continuación, seleccione Continuar.

    Página de selección de origen de Azure Pipelines con Azure Repos Git, GitHub y otras opciones, y repositorio, rama, y botón continuar visible.

  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 situado junto al trabajo del Agente 1. Escriba npm en la búsqueda de tareas y seleccione npm.

    Screenshot de la página de tareas de Azure Pipelines con el trabajo de agente 1 seleccionado, npm buscado, y opciones de tarea de npm mostradas a la derecha.

  2. Asigne a la tarea un nombre visible. Cambie la opción Comando a personalizada y escriba el siguiente comando en Comando y argumentos. No cambie las otras opciones predeterminadas.

    install -g azure-streamanalytics-cicd
    

    Captura de pantalla del editor de tareas de Azure Pipelines que muestra la tarea npm con el comando personalizado para instalar azure-streamanalytics-cicd package.

Siga estos pasos si necesita usar un agente de Linux hospedado:

  1. Seleccione la especificación del agente.

    Captura de pantalla de la página de Tareas de Azure Pipelines que muestra el grupo de agentes establecido en Azure Pipelines, y la especificación del agente establecida en ubuntu-16.04.

  2. En la página Tareas , seleccione el signo más situado junto al trabajo del Agente 1. Escriba la línea de comandos en la búsqueda de tareas y seleccione Línea de comandos.

    Captura de pantalla de la tarea de búsqueda de línea de comandos.

  3. Asigna un nombre de visualización a la tarea. Escriba el siguiente comando en Script. No cambie las otras opciones predeterminadas.

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

    Captura de pantalla de la escritura del script para la tarea cmd.

Agregar una tarea de compilación

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

    Nombre de la variable Valor
    rutaRaízDelProyecto [NombreDeSuProyecto]
    outputPath Resultados
    ruta de despliegue Desplegar
  2. En la página Tareas , seleccione el signo más situado junto al trabajo del Agente 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 el build --v2 comando para generar la 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.

    La plantilla de ARM anterior pronto quedará en desuso. Solo las plantillas creadas mediante build --v2 reciben actualizaciones y correcciones de errores.

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

    En la imagen siguiente se usa un proyecto de Visual Studio Code de Stream Analytics como ejemplo.

    Captura de pantalla del editor de canalizaciones de Azure DevOps que muestra una tarea de línea de comandos para compilar un proyecto de Stream Analytics en Visual Studio Code.

Adición de una tarea de prueba

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

    Nombre de la variable Valor
    testPath Prueba

    Captura de pantalla de la página de Variables de Azure Pipelines que muestra la lista de variables y valores del pipeline, con el botón Agregar visible.

  2. En la página Tareas , seleccione el signo más situado junto al trabajo del Agente 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.

    Consulte instrucciones de prueba automatizadas para más información sobre cómo agregar y configurar casos de prueba.

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

    Captura de pantalla de la configuración de tareas de Azure Pipelines.

Adición de una tarea de copia de archivos

Agregue una tarea de archivo de copia para mover el archivo de resumen de pruebas y los archivos de plantilla de Azure Resource Manager a la carpeta de artefactos.

  1. En la página de Tareas, seleccione el + junto a trabajo del agente 1. Busque Copiar archivos. Luego, escriba las siguientes configuraciones. Al asignar ** a Contenido, se copian todos los archivos de los resultados de la 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. Seleccione Incluso si se ha producido un error en una tarea anterior, a menos que la compilación se cancele en Ejecutar esta tarea.

    Captura de pantalla de la configuración de la tarea de canalización de Azure DevOps que muestra el paso Copiar archivos con los campos de carpeta de origen, contenido y destino llenados.

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

  1. En la página Tareas , seleccione el signo más situado junto al trabajo del Agente 1. Busque Publicar artefactos de compilación y seleccione la opción con el icono de flecha negra.

  2. Expanda Opciones de control. Seleccione Incluso si se ha producido un error en una tarea anterior, a menos que la compilación se cancele en Ejecutar esta tarea.

    Captura de pantalla del editor de tareas de Azure Pipelines que muestra la configuración de 'Publicar artefactos de compilación' con las opciones de control expandidas.

Guardar y ejecutar

Después de terminar de agregar el paquete npm, la línea de comandos, copiar los archivos y publicar los artefactos de compilación, seleccione Guardar y poner en cola. Cuando se le solicite, escriba un comentario para guardar y seleccione Guardar y ejecutar. Puede descargar los resultados de las pruebas en la página Resumen de la canalización.

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

Puede encontrar el archivo de resumen de pruebas y los archivos de plantilla de Azure Resource Manager en la carpeta Published.

Captura de pantalla de Azure Pipelines página de resumen que muestra detalles de ejecución manuales, información del repositorio, tiempo transcurrido y un vínculo de resultado de prueba publicado.

Captura de pantalla de Azure Artifacts página que muestra la pestaña Publicado con carpetas y archivos para resultados de compilación y pruebas.

Lanzamiento con Azure Pipelines

En esta sección, aprenderá a crear un pipeline de publicación.

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

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

  2. Seleccione Iniciar con un trabajo vacío.

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

    Captura de pantalla del cuadro de diálogo Agregar un artefacto en Azure Pipelines, mostrando el tipo de origen build seleccionado y los campos de canalización de compilación completados.

  4. Cambie el nombre de la fase 1 a Implementar trabajo para probar el entorno.

  5. Agregue una nueva fase y asígnele el nombre Deploy job to production environment (Implementar trabajo en entorno de producción).

Adición de tareas de implementación

Nota:

La opción Override template parameters no se aplica a las compilaciones de Azure Resource Manager v2 porque el proceso pasa parámetros como objetos. Para solucionar esta limitación, agregue un script de PowerShell a la canalización que lea el archivo de parámetros como JSON y realice las modificaciones de parámetro necesarias.

Para obtener más información sobre cómo agregar el script de PowerShell, vea ConvertFrom-Json y Update Object in JSON file ( ConvertirFrom-Json y Actualizar objeto en el archivo JSON).

  1. En la lista desplegable tareas, seleccione Implementar trabajo para probar el entorno.

  2. Seleccione el + siguiente trabajo del agente y busque la implementación de plantillas de ARM. Escriba los siguientes parámetros:

    Parámetro Valor
    Nombre para mostrar Implementación de myASAProject
    suscripción de Azure Elija su suscripción.
    Acción Creación o actualización del grupo de recursos
    Grupo de recursos Elija un nombre para el grupo de recursos de prueba que contiene el trabajo de Stream Analytics.
    Ubicación 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> "your value". Defina los parámetros mediante Variables.
    Modo de implementación Incremental
  3. En la lista desplegable tareas, seleccione Implementar trabajo en entorno de producción.

  4. Seleccione el + junto a tarea de agente y busque el despliegue de plantillas ARM. Escriba los siguientes parámetros:

    Parámetro Valor
    Nombre para mostrar Implementación de myASAProject
    suscripción de Azure Elija su suscripción.
    Acción Creación o actualización del grupo de recursos
    Grupo de recursos Elija un nombre para el grupo de recursos de producción que contiene el trabajo de Stream Analytics.
    Ubicación 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> "your value"
    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.

Captura de pantalla de Azure Pipelines pipeline de lanzamiento con artefactos, fases y el botón Crear versión resaltado.