Inicio rápido: Integración de Bicep en Azure Pipelines

En este artículo de inicio rápido se muestra cómo integrar archivos Bicep en Azure Pipelines para la integración continua e implementación continua (CI/CD).

Se brinda una breve introducción a la tarea de canalización que necesita para implementar un archivo Bicep. Si desea pasos más detallados sobre cómo configurar la canalización y el proyecto, consulte Implementación de recursos de Azure mediante Bicep y Azure Pipelines.

Prerrequisitos

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Necesita una organización de Azure DevOps. Si no tiene ninguna, cree una gratis. Si su equipo ya tiene una organización de Azure DevOps, compruebe que es administrador del proyecto de Azure DevOps que quiere utilizar.

Tiene que haber configurado una conexión al servicio en la suscripción de Azure. Las tareas en la canalización se ejecutan con la identidad de la entidad de servicio. Para conocer los pasos para crear la conexión, consulte Crear un proyecto de DevOps.

Necesita un archivo Bicep que defina la infraestructura del proyecto. Este archivo está en un repositorio.

Necesita un archivo bicepparam que defina los parámetros que usa el archivo bicep. Este archivo está en un repositorio.

Creación de una canalización

  1. En la organización de Azure DevOps, seleccione Canalizaciones y Crear canalización.

    Captura de pantalla de la creación de una canalización.

  2. Especifique dónde está almacenado el código. En este inicio rápido usa el Git de Azure Repos.

    Captura de pantalla de la selección del origen de código.

  3. Seleccione el repositorio que tiene el código para el proyecto.

    Captura de pantalla de la selección de repositorio.

  4. Seleccione Canalización inicial para el tipo de canalización que quiere crear.

    Captura de pantalla de la selección de canalización.

Implementación de archivos de Bicep

Puede usar la tarea implementación del grupo de recursos de Azure o la tarea de la CLI de Azure para implementar un archivo de Bicep.

Usar la tarea de implementación de plantillas de Azure Resource Manager

Nota:

A partir de la versión 3.235.0 de la tarea Implementación de la plantilla de Azure Resource Manager, se admite el uso de archivos bicepparam.

Nota:

La tarea AzureResourceManagerTemplateDeployment@3 requiere que se proporcionen archivos Bicep y bicepparam al usar bicepparam. El archivo Bicep puede hacer referencia a todas las ubicaciones admitidas para las referencias de módulo. El archivo bicepparam debe hacer referencia al archivo Bicep local en la instrucción using.

  1. Reemplace la canalización inicial por el siguiente código YAML. Crea un grupo de recursos e implementa un archivo Bicep y un archivo bicepparam mediante la tarea Implementación de la plantilla de Azure Resource Manager.

    trigger:
    - main
    
    name: Deploy Bicep files
    
    parameters:
    - name: azureServiceConnection
      type: string
      default: '<your-connection-name>'
    
    variables:
      vmImageName: 'ubuntu-latest'
      resourceGroupName: 'exampleRG'
      location: '<your-resource-group-location>'
      templateFile: './main.bicep'
      csmParametersFile: './main.bicepparam'
    
    pool:
      vmImage: $(vmImageName)
    
    steps:
    - task: AzureResourceManagerTemplateDeployment@3
      inputs:
        deploymentScope: 'Resource Group'
        azureSubscription: '${{ parameters.azureServiceConnection }}'
        action: 'Create Or Update Resource Group'
        resourceGroupName: '$(resourceGroupName)'
        location: '$(location)'
        templateLocation: 'Linked artifact'
        csmFile: '$(templateFile)'
        csmParametersFile: '$(csmParametersFile)'
        overrideParameters: '-storageAccountType Standard_LRS'
        deploymentMode: 'Incremental'
        deploymentName: 'DeployPipelineTemplate'
    
  2. Actualice los valores de azureServiceConnection y location.

  3. Compruebe que tiene un archivo main.bicep válido en el repositorio.

  4. Compruebe que tiene un archivo main.bicepparam válido en el repositorio y que contiene una instrucción using.

  5. Seleccione Guardar. La canalización de compilación se ejecuta automáticamente. Vuelva al resumen de la canalización de compilación y vea el estado.

Uso de una tarea de la CLI de Azure

Nota:

El comando az deployment group create requiere solo un archivo bicepparam. La instrucción using en el archivo bicepparam puede tener como destino cualquier ubicación admitida para hacer referencia al archivo de Bicep. Un archivo de Bicep solo es necesario en el repositorio cuando using se aplica desde una ruta de acceso de disco local con la CLI de Azure.

Nota:

Cuando se usa un archivo bicepparam con el comando az deployment group create, no se pueden invalidar los parámetros.

  1. Reemplace la canalización inicial por el siguiente código YAML. Crea un grupo de recursos e implementa un archivo bicepparam mediante una tarea de la CLI de Azure:

    trigger:
    - main
    
    name: Deploy Bicep files
    
    parameters:
      azureServiceConnection: '<your-connection-name>'
    
    variables:
      vmImageName: 'ubuntu-latest'
      resourceGroupName: 'exampleRG'
      location: '<your-resource-group-location>'
      bicepParamFile: './main.bicepparam'
    
    pool:
      vmImage: $(vmImageName)
    
    steps:
    - task: AzureCLI@2
      inputs:
        azureSubscription: '${{ parameters.azureServiceConnection }}'
        scriptType: bash
        scriptLocation: inlineScript
        useGlobalConfig: false
        inlineScript: |
          az --version
          az group create --name $(resourceGroupName) --location $(location)
          az deployment group create `
            --resource-group $(resourceGroupName) `
            --parameters $(bicepParamFile) `
            --name DeployPipelineTemplate
    

    Para ver las descripciones de las entradas de tarea, consulte Tarea de la CLI de Azure. Al usar la tarea en la nube aislada, debe establecer la propiedad useGlobalConfig de la tarea en true. El valor predeterminado es false.

  2. Actualice los valores de azureServiceConnection y location.

  3. Compruebe que tiene un archivo main.bicepparam válido en el repositorio y que contiene una instrucción using.

  4. Seleccione Guardar. La canalización de compilación se ejecuta automáticamente. Vuelva al resumen de la canalización de compilación y vea el estado.

Limpieza de recursos

Cuando los recursos de Azure dejen de ser necesarios, use la CLI de Azure o Azure PowerShell para eliminar el grupo de recursos y el recurso del servidor del artículo de inicio rápido.

az group delete --name exampleRG

Pasos siguientes