Schnellstart: Integrieren von Bicep und Azure Pipelines

In diesem Schnellstart wird gezeigt, wie Sie Bicep-Dateien und Azure Pipelines für Continuous Integration und Continuous Deployment (CI/CD) integrieren können.

Sie erhalten eine kurze Einführung in den Pipelinetask, den Sie zum Bereitstellen einer Bicep-Datei benötigen. Wenn Sie detailliertere Schritte zum Einrichten der Pipeline und des Projekts wünschen, finden Sie weitere Informationen unter Bereitstellen von Azure-Ressourcen mithilfe von Bicep und Azure Pipelines.

Voraussetzungen

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Sie benötigen eine Azure DevOps-Organisation. Sollten Sie über keine Organisation verfügen, können Sie kostenlos eine erstellen. Wenn Ihr Team bereits über eine Azure DevOps-Organisation verfügt, stellen Sie sicher, dass Sie Administrator des Azure DevOps-Projekts sind, das Sie verwenden möchten.

Sie benötigen eine konfigurierte Dienstverbindung mit Ihrem Azure-Abonnement. Die Aufgaben in der Pipeline werden unter der Identität des Dienstprinzipals ausgeführt. Die Schritte zum Erstellen der Verbindung finden Sie unter Erstellen eines DevOps-Projekts.

Sie benötigen eine Bicep-Datei, mit der die Infrastruktur für Ihr Projekt definiert wird. Diese Datei befindet sich in einem Repository.

Sie benötigen eine bicepparam-Datei, die die von Ihrer Bicep-Datei verwendeten Parameter definiert. Diese Datei befindet sich in einem Repository.

Erstellen der Pipeline

  1. Wählen Sie in Ihrer Azure DevOps-Organisation Pipelines und Pipeline erstellen aus.

    Screenshot der Erstellung einer neuen Pipeline.

  2. Geben Sie an, wo Ihr Code gespeichert ist. In diesem Schnellstart wird Azure Repos Git verwendet.

    Screenshot der Auswahl der Codequelle.

  3. Wählen Sie das Repository aus, das den Code für Ihr Projekt enthält.

    Screenshot der Auswahl des Repositorys.

  4. Wählen Sie als Typ der zu erstellenden Pipeline Starterpipeline aus.

    Screenshot der Auswahl der Pipeline.

Bereitstellen von Bicep-Dateien

Sie können die Bereitstellungsaufgabe für Azure-Ressourcengruppen oder die Azure CLI-Aufgabe verwenden, um eine Bicep-Datei bereitzustellen.

Verwenden der Bereitstellungsaufgabe für Azure Resource Manager-Vorlagen

Hinweis

Ab Version 3.235.0 der Bereitstellungsaufgabe für Azure Resource Manager-Vorlagen wird die Verwendung von bicepparam-Dateien unterstützt.

Hinweis

Für die AzureResourceManagerTemplateDeployment@3-Aufgabe müssen sowohl Bicep- als auch bicepparam-Dateien bereitgestellt werden, wenn bicepparam verwendet wird. Die Bicep-Datei kann auf alle unterstützten Speicherorte für Modulverweise verweisen. Die bicepparam-Datei muss in der using-Anweisung auf die lokale Bicep-Datei verweisen.

  1. Ersetzen Sie Ihre Starterpipeline durch den folgenden YAML-Code. Damit wird mithilfe einer Bereitstellungsaufgabe für Azure Resource Manager-Vorlagen eine Ressourcengruppe erstellt und eine Bicep- und bicepparam-Datei bereitgestellt.

    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. Aktualisieren Sie die Werte von azureServiceConnection und location.

  3. Vergewissern Sie sich, dass Sie über eine gültige main.bicep-Datei in Ihrem Repository verfügen.

  4. Stellen Sie sicher, dass Sie in Ihrem Repository über eine gültige main.bicepparam-Datei verfügen, die eine using-Anweisung enthält.

  5. Wählen Sie Speichern. Die Buildpipeline wird automatisch ausgeführt. Gehen Sie zurück zur Zusammenfassung Ihrer Buildpipeline und schauen Sie sich den Status an.

Verwenden der Azure CLI-Aufgabe

Hinweis

Der Befehl az deployment group create erfordert nur eine bicepparam-Datei. Die using-Anweisung in der bicepparam-Datei kann auf jeden unterstützten Speicherort ausgerichtet werden, um auf die Bicep-Datei zu verweisen. Eine Bicep-Datei ist nur für using von einem lokalen Datenträgerpfad mit Azure CLI in Ihrem Repository erforderlich.

Hinweis

Wenn Sie eine bicepparam-Datei mit dem Befehl az deployment group create verwenden, können Sie Parameter nicht überschreiben.

  1. Ersetzen Sie Ihre Starterpipeline durch den folgenden YAML-Code. Damit wird eine Ressourcengruppe erstellt und mithilfe einer Azure CLI-Aufgabe eine bicepparam-Datei bereitgestellt:

    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
    

    Beschreibungen der Aufgabeneingaben finden Sie unter Azure CLI-Aufgabe. Wenn Sie die Aufgabe in einer nicht verbundenen (air-gapped) Cloud verwenden, müssen Sie die useGlobalConfig-Eigenschaft der Aufgabe auf true festlegen. Der Standardwert ist false.

  2. Aktualisieren Sie die Werte von azureServiceConnection und location.

  3. Stellen Sie sicher, dass Sie in Ihrem Repository über eine gültige main.bicepparam-Datei verfügen, die eine using-Anweisung enthält.

  4. Wählen Sie Speichern. Die Buildpipeline wird automatisch ausgeführt. Gehen Sie zurück zur Zusammenfassung Ihrer Buildpipeline und schauen Sie sich den Status an.

Bereinigen von Ressourcen

Wenn Sie die Azure-Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe für den Schnellstart mithilfe der Azure CLI oder von Azure PowerShell.

az group delete --name exampleRG

Nächste Schritte