Übung: Veröffentlichen einer Vorlagenspezifikation
Ihr Team hat einige sicherheitsgehärtete Bicep-Dateien, die mit dem neuen Governancemodell Ihres Unternehmens konform sind. Eine der gehärteten Bicep-Dateien stellt eine Linux-basierte Azure App Service-App bereit. In dieser Übung verwenden Sie eine Bereitstellungspipeline, um die Bicep-Datei als Vorlagenspezifikation zu veröffentlichen.
In dem Prozess gehen Sie wie folgt vor:
- Fügen Sie der Pipeline eine Lintstufe zu.
- Fügen Sie eine Pipelinestufe hinzu, um die Vorlagenspezifikation zu veröffentlichen.
- Stellen Sie sicher, dass die Pipeline erfolgreich gestartet und beendet wird.
- Überprüfen Sie die veröffentlichte Vorlagenspezifikation in Azure.
Hinzufügen einer Lintstufe zur Pipeline
Ihr Repository enthält den Entwurf einer Pipelinedefinition, den Sie als Startpunkt verwenden können.
Erweitern Sie in Visual Studio Code den Ordner template-specs/linux-app-service im Stammverzeichnis des Repositorys.
Öffnen Sie die Datei pipeline.yml.
Ersetzen Sie im unteren Teil der Datei
# To be added
durch die folgende Definition der Lintphase:stages: - stage: Lint jobs: - job: LintCode displayName: Lint code steps: - script: | az bicep build --file $(TemplateSpecFilePath) name: LintBicepCode displayName: Run Bicep linter
In Ihrem Repository ist die Datei bicepconfig.json enthalten, die den Linter so konfiguriert, dass anstelle von Warnungen Fehler ausgegeben werden. Wenn ein Fehler bei der Lintstufe auftritt, schlägt die Pipeline fehl.
Tipp
YAML-Dateien berücksichtigen Einzüge. Unabhängig davon, ob Sie diesen Code eingeben oder einfügen, stellen Sie sicher, dass der Einzug korrekt ist. Später in dieser Übung sehen Sie die vollständige YAML-Pipelinedefinition, sodass Sie überprüfen können, ob Ihre Datei übereinstimmt.
Hinzufügen einer Veröffentlichungsstufe zur Pipeline
Jetzt können Sie eine zweite Stufe hinzufügen, um die Vorlagenspezifikation in Azure zu veröffentlichen.
Fügen Sie den folgenden Code an das Ende der Datei pipeline.yml hinzu:
- stage: Publish jobs: - job: Publish steps: - task: AzureCLI@2 name: Publish displayName: Publish template spec inputs: azureSubscription: $(ServiceConnectionName) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az ts create \ --resource-group $(AzureResourceGroupName) \ --name $(TemplateSpecName) \ --version $(Build.BuildNumber) \ --template-file $(TemplateSpecFilePath) \ --location $(AzureRegion) \ --yes
In dieser Phase wird der Code aus Ihrem Repository ausgecheckt und mithilfe der erstellten Dienstverbindung bei Azure angemeldet. Anschließend wird der Befehl
az ts create
ausgeführt, um die Vorlagenspezifikation in Azure zu veröffentlichen.Tipp
Zur Einfachheit verwendet Ihre Pipeline die Buildnummer der Pipeline als Versionsnummer der Vorlagenspezifikation. In der nächsten Einheit lernen Sie ein komplexeres Versionsverwaltungsschema kennen.
Speichern Sie die geänderte Datei.
Überprüfen und Committen Ihrer Pipelinedefinition
Überprüfen Sie, ob die Datei pipeline.yml wie im folgenden Beispiel aussieht:
trigger: batch: true branches: include: - main paths: include: - 'template-specs/linux-app-service/**' variables: - name: ServiceConnectionName value: ToyReusable - name: AzureResourceGroupName value: ToyReusable - name: AzureRegion value: westus3 - name: TemplateSpecName value: linux-app-service - name: TemplateSpecFilePath value: template-specs/linux-app-service/main.bicep pool: vmImage: ubuntu-latest stages: - stage: Lint jobs: - job: LintCode displayName: Lint code steps: - script: | az bicep build --file $(TemplateSpecFilePath) name: LintBicepCode displayName: Run Bicep linter - stage: Publish jobs: - job: Publish steps: - task: AzureCLI@2 name: Publish displayName: Publish template spec inputs: azureSubscription: $(ServiceConnectionName) scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | az ts create \ --resource-group $(AzureResourceGroupName) \ --name $(TemplateSpecName) \ --version $(Build.BuildNumber) \ --template-file $(TemplateSpecFilePath) \ --location $(AzureRegion) \ --yes
Falls nicht, aktualisieren Sie sie entsprechend diesem Beispiel und speichern sie.
Committen und pushen Sie Ihre Änderungen in Ihr Git-Repository, indem Sie die folgenden Befehle im Visual Studio Code-Terminal ausführen:
git add . git commit -m "Add lint and publish stages to Linux App Service template spec pipeline" git push
Unmittelbar nach dem Pushen startet Azure Pipelines eine neue Pipelineausführung.
Überwachen der Pipeline
Wählen Sie in Ihrem Browser Pipelines>Pipelines aus.
Wählen Sie die aktive Pipelineausführung aus.
Die Pipelineausführung wird angezeigt.
Warten Sie, bis die Pipelineausführung abgeschlossen ist. Wenn dies der Fall ist, wird die Vorlagenspezifikation in Azure veröffentlicht.
Notieren Sie die Buildnummer der Pipeline, die das heutige Datum und eine eindeutige Revisionsnummer enthält. Im Beispiel-Screenshot lautet die Build-Nummer 20230407.1.
Anzeigen der Vorlagenspezifikation in Azure
Sie können die veröffentlichte Vorlagenspezifikation auch im Azure-Portal anzeigen.
Navigieren Sie in Ihrem Browser zum Azure-Portal.
Wechseln Sie zur Ressourcengruppe ToyReusable, und wählen Sie die Vorlagenspezifikation linux-app-service aus.
Untersuchen Sie die Details der Vorlagenspezifikation.
Beachten Sie, dass die Aktuelle Version und die Versionsnummer der Buildnummer der Pipeline entsprechen. Ihre Pipeline verwendet die Buildnummer für die Versionsnummer der Vorlage.