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
Wählen Sie in Ihrer Azure DevOps-Organisation Pipelines und Pipeline erstellen aus.
Geben Sie an, wo Ihr Code gespeichert ist. In diesem Schnellstart wird Azure Repos Git verwendet.
Wählen Sie das Repository aus, das den Code für Ihr Projekt enthält.
Wählen Sie als Typ der zu erstellenden Pipeline Starterpipeline aus.
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.
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'
Aktualisieren Sie die Werte von
azureServiceConnection
undlocation
.Vergewissern Sie sich, dass Sie über eine gültige
main.bicep
-Datei in Ihrem Repository verfügen.Stellen Sie sicher, dass Sie in Ihrem Repository über eine gültige
main.bicepparam
-Datei verfügen, die eine using-Anweisung enthält.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.
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 auftrue
festlegen. Der Standardwert istfalse
.Aktualisieren Sie die Werte von
azureServiceConnection
undlocation
.Stellen Sie sicher, dass Sie in Ihrem Repository über eine gültige
main.bicepparam
-Datei verfügen, die eine using-Anweisung enthält.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