Tutorial: Implementación de un trabajo de Azure Stream Analytics con CI/CD mediante Azure PipelinesTutorial: Deploy an Azure Stream Analytics job with CI/CD using Azure Pipelines

En este tutorial se describe cómo configurar la integración y la implementación continuas de un trabajo de Azure Stream Analytics mediante Azure Pipelines.This tutorial describes how to set up continuous integration and deployment for an Azure Stream Analytics job using Azure Pipelines.

En este tutorial, aprenderá a:In this tutorial, you learn how to:

  • Agregar un control de código fuente al proyectoAdd source control to your project
  • Crear una canalización de compilación en Azure PipelinesCreate a build pipeline in Azure Pipelines
  • Crear una canalización de versión en Azure PipelinesCreate a release pipeline in Azure Pipelines
  • Implementar y actualizar una aplicación automáticamenteAutomatically deploy and upgrade an application

Requisitos previosPrerequisites

Antes de empezar, asegúrese de que dispone de lo siguiente:Before you start, make sure you have the following:

Configuración de dependencias de paquetes NuGetConfigure NuGet package dependency

Para realizar la compilación y la implementación automáticas en una máquina arbitraria, deberá usar el paquete NuGet Microsoft.Azure.StreamAnalytics.CICD.In order to do auto build and auto deployment on an arbitrary machine, you need to use the NuGet package Microsoft.Azure.StreamAnalytics.CICD. Proporciona las herramientas de implementación, ejecución local y MSBuild que admite la integración continua y el proceso de implementación de los proyectos Stream Analytics para Visual Studio.It provides the MSBuild, local run, and deployment tools that support the continuous integration and deployment process of Stream Analytics Visual Studio projects. Para más información, consulte las herramientas de CI/CD de Stream Analytics.For more information, see Stream Analytics CI/CD tools.

Agregue packages.config al directorio del proyecto.Add packages.config to your project directory.

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Azure.StreamAnalytics.CICD" version="1.0.0" targetFramework="net452" />
</packages>

Solución de Visual Studio compartida en un nuevo repositorio Git de Azure ReposShare your Visual Studio solution to a new Azure Repos Git repo

Comparta sus archivos de origen de la aplicación en un proyecto de Azure DevOps para generar compilaciones.Share your application source files to a project in Azure DevOps so you can generate builds.

  1. Cree un repositorio de Git local para el proyecto; para ello, seleccione Add to Source Control (Agregar al control de código fuente) y luego Git en la barra de estado de la esquina inferior derecha de Visual Studio.Create a new local Git repo for your project by selecting Add to Source Control, then Git on the status bar in the lower right-hand corner of Visual Studio.

  2. En la vista Sincronización de Team Explorer, seleccione el botón Publicar repositorio Git en Insertar en Azure DevOps Services.In the Synchronization view in Team Explorer, select the Publish Git Repo button under Push to Azure DevOps Services.

    Botón Publicar repositorio Git de Insertar en Azure DevOps Services

  3. Verifique su correo electrónico y seleccione su organización en la lista desplegable Azure DevOps Services Domain (Dominio de Azure DevOps Services).Verify your email and select your organization in the Azure DevOps Services Domain drop-down. Escriba el nombre del repositorio y seleccione Publicar repositorio.Enter your repository name and select Publish repository.

    Botón Publicar repositorio del repositorio Git de inserción

    La publicación del repositorio crea un proyecto en su organización con el mismo nombre que el repositorio local.Publishing the repo creates a new project in your organization with the same name as the local repo. Para crear el repositorio en un proyecto existente, haga clic en Avanzado, junto al nombre del repositorio, y seleccione un proyecto.To create the repo in an existing project, click Advanced next to Repository name, and select a project. Para ver el código en el explorador, seleccione See it on the web (Verlo en la Web).You can view your code in the browser by selecting See it on the web.

Configuración de la entrega continua con Azure DevOpsConfigure continuous delivery with Azure DevOps

Una canalización de compilación de Azure Pipelines describe un flujo de trabajo compuesto por pasos de compilación que se ejecutan de manera secuencial.An Azure Pipelines build pipeline describes a workflow comprised of build steps that are executed sequentially. Más información sobre las canalizaciones de compilación de Azure Pipelines.Learn more about Azure Pipelines build pipelines.

Una canalización de versión de Azure Pipelines describe un flujo de trabajo que implementa un paquete de aplicación en un clúster.An Azure Pipelines release pipeline describes a workflow that deploys an application package to a cluster. Cuando se usan juntas, la canalización de compilación y la de versión ejecutan el flujo de trabajo completo empezando por los archivos de origen y terminando por una aplicación en el clúster.When used together, the build pipeline and release pipeline execute the entire workflow starting with source files and ending with a running application in your cluster. Más información sobre las canalizaciones de versión de Azure Pipelines.Learn more about Azure Pipelines release pipelines.

Creación de una canalización de compilaciónCreate a build pipeline

Abra un explorador web y vaya hasta el proyecto que acaba de crear en Azure DevOps.Open a web browser and navigate to the project you just created in Azure DevOps.

  1. En la pestaña Build & Release (Compilación y versión), seleccione Compilaciones y, luego, +Nuevo.Under the Build & Release tab, select Builds, and then +New. Seleccione Azure DevOps Services Git (Git de Azure DevOps Services) y Continuar.Select Azure DevOps Services Git and Continue.

    Selección del origen de Git de DevOps en Azure DevOps

  2. En Seleccionar una plantilla, haga clic en Proceso vacío para comenzar con una canalización vacía.In Select a template, click Empty Process to start with an empty pipeline.

    Selección de un proceso vacío entre las opciones de plantilla en DevOps

  3. En Desencadenadores, active el estado del desencadenador Habilitar la integración continua para habilitar la integración continua.Under Triggers, enable continuous integration by checking Enable continuous integration trigger status. Seleccione Guardar y poner en cola para iniciar manualmente una compilación.Select Save and queue to manually start a build.

    Habilitación del estado del desencadenador de integración continua

  4. Las compilaciones se desencadenan también tras el envío de cambios o la inserción en el repositorio.Builds are also triggered upon push or check-in. Para comprobar el progreso de la compilación, vaya a la pestaña Compilaciones. Cuando haya verificado que la compilación se ejecuta correctamente, debe determinar una canalización de versión que implemente la aplicación en un clúster.To check your build progress, switch to the Builds tab. Once you verify that the build executes successfully, you must define a release pipeline that deploys your application to a cluster. Haga clic con el botón derecho en el botón de puntos suspensivos situado junto a la canalización de compilación y seleccione Editar.Right click on the ellipses next to your build pipeline and select Edit.

  5. En Tareas, escriba "Hospedado" como Cola de agentes.In Tasks, enter "Hosted" as the Agent queue.

    Selección de la cola de agentes en el menú Tareas

  6. En Phase 1 (Fase 1), haga clic en + y agregue una tarea de NuGet.In Phase 1, click + and add a NuGet task.

    Incorporación de una tarea de NuGet en la cola de agentes

  7. Expanda Avanzado y agregue $(Build.SourcesDirectory)\packages al directorio de destino.Expand Advanced and add $(Build.SourcesDirectory)\packages to Destination directory. Mantenga el resto de valores de configuración predeterminados de NuGet.Keep the remaining default NuGet configuration values.

    Configuración de la tarea de restauración de NuGet

  8. En Phase 1 (Fase 1), haga clic en + y agregue una tarea de MSBuild.In Phase 1, click + and add a MSBuild task.

    Incorporación de la tarea de MSBuild en la cola de agentes

  9. Cambie los argumentos de MSBuild por lo siguiente:Change the MSBuild Arguments to the following:

    /p:CompilerTaskAssemblyFile="Microsoft.WindowsAzure.StreamAnalytics.Common.CompileService.dll"  /p:ASATargetsFilePath="$(Build.SourcesDirectory)\packages\Microsoft.Azure.StreamAnalytics.CICD.1.0.0\build\StreamAnalytics.targets"
    

    Configuración de la tarea de MSBuild en DevOps

  10. En Phase 1 (Fase 1), haga clic en + y agregue una tarea de implementación de un grupo de recursos de Azure.In Phase 1, click + and add an Azure Resource Group Deployment task.

    Adición de una tarea de implementación de un grupo de recursos de Azure

  11. Expanda Detalles de Azure y rellene la configuración con los siguientes valores:Expand Azure Details and fill out the configuration with the following:

    ConfiguraciónSetting Valor sugeridoSuggested value
    SubscriptionSubscription Elija su suscripción.Choose your subscription.
    .Action Creación o actualización del grupo de recursosCreate or update resource group
    Grupo de recursosResource Group Escriba el nombre de un grupo de recursos.Enter a resource group name.
    PlantillaTemplate [La ruta de acceso a la solución]\bin\Debug\Deploy\[El nombre del proyecto].JobTemplate.json[Your solution path]\bin\Debug\Deploy\[Your project name].JobTemplate.json
    Parámetros de plantillaTemplate parameters [La ruta de acceso a la solución]\bin\Debug\Deploy\[El nombre del proyecto].JobTemplate.parameters.json[Your solution path]\bin\Debug\Deploy\[Your project name].JobTemplate.parameters.json
    Reemplazo de los parámetros de plantillaOverride template parameters Escriba los parámetros de plantilla para reemplazar en el cuadro de texto.Type the template parameters to override in the textbox. Ejemplo: –storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).Example, –storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre). Esta propiedad es opcional, pero la compilación generará errores si no se reemplazan los parámetros de clave.This property is optional, but your build will result in errors if key parameters are not overridden.

    Establecimiento de las propiedades para la implementación del grupo de recursos de Azure

  12. Haga clic en Guardar y poner en cola para probar la canalización de compilación.Click Save & Queue to test the build pipeline.

    Guardar y poner en cola la compilación en DevOps

Error en el proceso de compilaciónFailed build process

Si no reemplazó los parámetros de plantilla en la tarea de implementación de un grupo de recursos de Azure de la canalización de compilación, puede que reciba errores de los parámetros de implementación nulos.You may receive errors for null deployment parameters if you did not override template parameters in the Azure Resource Group Deployment task of your build pipeline. Vuelva a la canalización de compilación y reemplace los parámetros nulos para resolver el error.Return to the build pipeline and override the null parameters to resolve the error.

Error del proceso de compilación de Stream Analytics para DevOps

Confirmación y envío de cambios para desencadenar una versiónCommit and push changes to trigger a release

Para verificar que la canalización de integración continua funciona, inserte en el repositorio algunos cambios de código para Azure DevOps.Verify that the continuous integration pipeline is functioning by checking in some code changes to Azure DevOps.

A medida que escribe el código, los cambios se controlan automáticamente con Visual Studio.As you write your code, your changes are automatically tracked by Visual Studio. Para confirmar los cambios en el repositorio de Git local, seleccione el icono de cambios pendientes en la barra de estado de la parte inferior derecha.Commit changes to your local Git repository by selecting the pending changes icon from the status bar in the bottom right.

  1. En la vista Cambios de Team Explorer, agregue un mensaje que describa la actualización y confirme los cambios.On the Changes view in Team Explorer, add a message describing your update and commit your changes.

    Confirmación de los cambios del repositorio desde Visual Studio

  2. Seleccione el icono de la barra de estado de cambios no publicados o la vista de sincronización de Team Explorer.Select the unpublished changes status bar icon or the Sync view in Team Explorer. Seleccione Insertar para actualizar el código en Azure DevOps.Select Push to update your code in Azure DevOps.

    Inserción de cambios desde Visual Studio

La inserción de los cambios en Azure DevOps Services desencadena automáticamente una compilación.Pushing the changes to Azure DevOps Services automatically triggers a build. Cuando la canalización de compilación se ha completado correctamente, se crea automáticamente una versión y empieza a actualizarse el trabajo en el clúster.When the build pipeline successfully completes, a release is automatically created and starts updating the job on the cluster.

Limpieza de recursosClean up resources

Cuando no los necesite, elimine el grupo de recursos, el trabajo de streaming y todos los recursos relacionados.When no longer needed, delete the resource group, the streaming job, and all related resources. La eliminación del trabajo evita la facturación de las unidades de streaming utilizadas por el trabajo.Deleting the job avoids billing the streaming units consumed by the job. Si piensa utilizar el trabajo en el futuro, puede detenerlo y volver a iniciarlo más adelante cuando sea necesario.If you're planning to use the job in future, you can stop it and re-start it later when you need. Si no va a seguir usando este trabajo, siga estos pasos para eliminar todos los recursos creados en este tutorial:If you are not going to continue to use this job, delete all resources created by this tutorial by using the following steps:

  1. En el menú de la izquierda de Azure Portal, haga clic en Grupos de recursos y en el nombre del recurso que creó.From the left-hand menu in the Azure portal, click Resource groups and then click the name of the resource you created.
  2. En la página del grupo de recursos, haga clic en Eliminar, escriba en el cuadro de texto el nombre del recurso que quiere eliminar y haga clic en Eliminar.On your resource group page, click Delete, type the name of the resource to delete in the text box, and then click Delete.

Pasos siguientesNext steps

Para aprender más sobre el uso de herramientas de Azure Stream Analytics para Visual Studio para configurar un proceso de integración e implementación continuas, continúe con el artículo para configurar la canalización de CI/CD:To learn more about using Azure Stream Analytics tools for Visual Studio to set up a continuous integration and deployment process, continue to the set up CI/CD pipeline article: