Verwalten einer Vorlagenspezifikation

Abgeschlossen

Vorlagenspezifikationen stellen eine praktische Möglichkeit zum Veröffentlichen und Freigeben von Vorlagen in Ihrer Organisation dar. Wenn Sie Vorlagenspezifikationen in größerem Umfang verwenden, ist es wichtig zu verstehen, wie sie verwaltet werden.

In dieser Lektion erfahren Sie mehr über die Versionsverwaltung, das Ändern und Löschen von Vorlagenspezifikationen und das Steuern des Zugriffs auf Vorlagenspezifikationen.

Hinweis

Die Befehle in dieser Lerneinheit dienen der Veranschaulichung der Konzepte. Führen Sie die Befehle jetzt noch nicht aus. Sie können das Erlernte in Kürze üben.

Hinzufügen von Versionen

Sie haben gelernt, dass eine einzelne Vorlagenspezifikation mehrere Versionen aufweisen kann. Eine Vorlagenspezifikation fungiert als Container für eine oder mehrere Versionen, und jede Version ist einer Vorlagendatei zugeordnet. Wenn Sie eine Vorlagenspezifikation bereitstellen, müssen Sie die Version angeben, die Sie verwenden möchten, damit Azure Resource Manager weiß, welche Vorlagendatei abgerufen werden soll.

Azure CLI und Azure PowerShell machen das Arbeiten mit mehreren Versionen einfach. Tatsächlich haben Sie bereits beim Bereitstellen der Vorlagenspezifikation in der vorherigen Übung mit Versionen gearbeitet.

Es ist eine gute Idee, die Versionsverwaltung Ihrer Vorlagenspezifikationen sorgfältig zu planen. Zwei wichtige Entscheidungen, die getroffen werden müssen, sind das Versionsschema und die Versionsrichtlinie, die verwendet werden sollen.

Versionsverwaltungsschemas

Ihr Versionsschema bestimmt, wie Sie Versionsnummern generieren. Zu den gängigen Versionsschemas gehören:

  • Einfache ganze Zahlen können als Versionsnummern verwendet werden. Ihre erste Version kann z. B. 1 heißen, Ihre zweite Version 2 usw.
  • Datumsangaben geben ebenfalls gute Versionsnummern ab. Wenn Sie beispielsweise die erste Version Ihrer Vorlagenspezifikation am 16. Januar 2021 veröffentlichen, können Sie die Version 2021-01-16 benennen (im Format jjjj-mm-tt). Wenn Sie eine weitere Version am 3. März veröffentlichen, können Sie sie 2021-03-03 nennen.
  • Als semantische Versionsverwaltung bezeichnet man ein Versionssystem, das häufig für Software verwendet wird, wobei eine einzelne Versionsnummer mehrere Teile enthält. Jeder Teil kommuniziert unterschiedliche Informationen zur Art der Änderung.

Obwohl Sie ein beliebiges Versionsverwaltungsschema verwenden können, empfiehlt es sich, etwas auszuwählen, das in eine sinnvolle Reihenfolge sortiert werden kann, wie Zahlen und Datumsangaben.

Hinweis

Azure speichert das Datum, an dem die einzelnen Versionen erstellt wurden. Selbst wenn Sie keine datumsbasierte Versionsverwaltung verwenden, stehen Ihnen diese Informationen zur Verfügung.

Versionsrichtlinien

Mit Vorlagenspezifikationen haben Sie die Flexibilität, zu entscheiden, wann eine neue Version erstellt oder eine vorhandene Version aktualisiert werden soll. Beispielsweise können Sie sich effektiv gegen jede Versionsverwaltung entscheiden, indem Sie eine einzelne Version erstellen und veröffentlichen, die den Namen latest trägt. Immer, wenn Sie Ihre Vorlagenspezifikation ändern müssen, aktualisieren Sie einfach diese Version. Diese Vorgehensweise funktioniert zwar, sie ist aber kein gutes Verfahren.

Hingegen ist es wahrscheinlich auch nicht klug, bei jeder kleinen Änderung einer vorhandenen Vorlage, die gar keinen Einfluss auf ihre Verwendung hat, eine neue Version zu erstellen. Sie müssten die neue Versionsnummer dann an alle Benutzer kommunizieren, die mit der Vorlagenspezifikation arbeiten.

Dagegen funktioniert diese Versionsrichtlinie in vielen Fällen gut:

  • Immer, wenn Sie wesentliche Änderungen an einer Vorlagenspezifikation vornehmen, erstellen Sie eine neue Version. Zu den wesentlichen Änderungen ihrer Vorlagenspezifikation gehören alle Änderungen, die für den Benutzer, der sie bereitstellt, einen Unterschied machen können. Beispiele hierfür sind das Hinzufügen einer weiteren Ressource zur Vorlage oder das Ändern der Eigenschaften einer Ressource.
  • Bei allen kleinen Änderungen an einer Vorlagenspezifikation, sogenannten Hotfixes, aktualisieren Sie die vorhandene Version der Vorlagenspezifikation.
  • Löschen Sie alte Versionen, wenn sie nicht mehr relevant sind oder wenn Sie nicht möchten, dass sie von jemandem verwendet werden.

Tipp

Berücksichtigen Sie die Benutzer Ihrer Vorlagenspezifikation, und überlegen Sie sich, was ihrer Meinung nach geschieht. Wenn ein Benutzer Ihre Vorlagenspezifikation mehrmals bereitgestellt und ein bestimmtes Ergebnis erhalten hat, und nach der erneuten Bereitstellung nach einem Hotfix ein anderes Ergebnis erhält, wird er wahrscheinlich überrascht sein. Versuchen Sie, die Wahrscheinlichkeit zu minimieren, dass Ihre Benutzer ein unerwartetes Ergebnis erhalten.

Versionsbeschreibungen

Wenn Sie eine neue Version einer Vorlagenspezifikation erstellen, können Sie sie optional mit einer Versionsbeschreibung versehen. Das Bereitstellen einer Versionsbeschreibung ist eine bewährte Methode, auch wenn sie nicht erforderlich ist. In der Versionsbeschreibung sind die vorgenommenen Änderungen zusammengefasst, damit jeder, der Ihre Vorlagenspezifikation verwendet, die Version auswählen kann, die seinen Anforderungen am besten entspricht.

Vornehmen von Änderungen an einer Vorlagenspezifikation

Vorlagenspezifikationen sind Azure-Ressourcen, daher können Sie sie wie jede andere Ressource verwalten. Dies bedeutet, dass Sie die Details einer Vorlagenspezifikation anzeigen, sie aktualisieren und sie wie gewohnt löschen können.

Zum Auflisten der Versionen einer Vorlagenspezifikation verwenden Sie beispielsweise das Get-AzTemplateSpec-Cmdlet:

Get-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec

Das gleiche Cmdlet wird zum Anzeigen der Version einer Vorlagenspezifikation verwendet. Fügen Sie den -Version-Parameter hinzu, um die Details einer Version abzurufen:

Get-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0

Sie können auf die JSON-Vorlage zugreifen, indem Sie die MainTemplate-Eigenschaft aus dem Versions-Array auslesen:

(Get-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0 `
).Versions[0].MainTemplate

Wenn Sie beispielsweise die Versionen einer Vorlagenspezifikation auflisten möchten, verwenden Sie den az ts show-Befehl:

az ts show \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec

Der gleiche Befehl wird zum Anzeigen der Version einer Vorlagenspezifikation verwendet. Fügen Sie das --version-Argument hinzu, um die Details einer Version abzurufen:

az ts show \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0

Die JSON-Vorlage ist in der Ausgabe enthalten.

Hinweis

Wenn Sie eine Bicep-Datei in einer Vorlagenspezifikation veröffentlichen, wird sie in JSON konvertiert. Sie können die ursprüngliche Bicep-Datei nicht sehen, daher empfiehlt es sich, diese an einer anderen Stelle zu speichern.

Zum Aktualisieren einer vorhandenen Vorlagenspezifikation verwenden Sie das Set-AzTemplateSpec-Cmdlet. Beispielsweise können Sie dieses Cmdlet verwenden, um einen Hotfix auf eine Version anzuwenden, die Sie bereits veröffentlicht haben:

Set-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0 `
  -TemplateFile azuredeploy.json

Ferner können Sie eine Version einer Vorlagenspezifikation mithilfe des Cmdlets Remove-AzTemplateSpec löschen:

Remove-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0

Zum Aktualisieren einer vorhandenen Vorlagenspezifikation verwenden Sie den az ts update-Befehl. Beispielsweise können Sie diesen Befehl verwenden, um einen Hotfix auf eine Version anzuwenden, die Sie bereits veröffentlicht haben:

az ts update \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0 \
  --template-file azuredeploy.json

Ferner können Sie eine Version einer Vorlagenspezifikation mithilfe des Befehls az ts delete löschen:

az ts delete \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0

Exportieren einer Vorlagenspezifikation

Nachdem Sie eine Vorlage als Vorlagenspezifikation veröffentlicht haben, können Sie sie exportieren. Beim Exportieren einer Vorlagenspezifikation wird die Vorlagendatei auf Ihren lokalen Computer heruntergeladen. Dort können Sie die Vorlagendatei dann entweder bearbeiten oder sie einfach untersuchen, um zu verstehen, wie sie funktioniert.

Tipp

Wenn Ihre Vorlagenspezifikation verknüpfte Vorlagen enthält, werden beim Exportieren einer Vorlagenspezifikation auch die verknüpften Vorlagen heruntergeladen. Sogar die Ordnerstruktur wird beibehalten.

Wichtig

Wenn Sie eine Bicep-Datei als Vorlagenspezifikation veröffentlichen, wird Ihr Bicep-Code in eine JSON-Vorlage konvertiert. Beim Konvertieren Ihres Bicep-Codes in JSON werden einige der Informationen in Ihrer Bicep-Datei entfernt. Beispielsweise können Ihre Kommentare, symbolischen Namen für Ressourcen und die Reihenfolge, in der Sie Ihre Ressourcen definieren, fehlen oder in JSON abweichen. Dies bedeutet, dass Sie nicht einfach eine Bicep-Datei als Vorlagenspezifikation veröffentlichen und anschließend die ursprüngliche Bicep-Datei zurück erhalten können (auch als Roundtripping bezeichnet). Es ist eine gute Idee, eine Kopie Ihres ursprünglichen Bicep-Codes in einem Coderepository wie Git aufzubewahren, insbesondere wenn Sie mit Vorlagenspezifikationen arbeiten.

Verwenden Sie zum Exportieren einer Vorlagenspezifikation das Export-AzTemplateSpec-Cmdlet. Geben Sie mithilfe des Werts -OutputFolder an, wo Sie die Vorlagendateien speichern möchten:

Export-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0 `
  -OutputFolder ./mytemplate

Verwenden Sie zum Exportieren einer Vorlagenspezifikation den az ts export-Befehl. Geben Sie mithilfe des Werts --output-folder an, wo Sie die Vorlagendateien speichern möchten:

az ts export \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0 \
  --output-folder ./mytemplate

Steuern des Zugriffs auf eine Vorlagenspezifikation

Da es sich bei Vorlagenspezifikationen um Azure-Ressourcen handelt, verwenden sie das IAM (Identity and Access Management) von Azure. Wenn ein Benutzer eine Vorlagenspezifikation bereitstellt, überprüft Azure zunächst, ob der Benutzer Lesezugriff auf die Vorlagenspezifikation hat.

Hinweis

Zum Bereitstellen einer Vorlagenspezifikation benötigt ein Benutzer Folgendes:

  • Lesezugriff auf die Vorlagenspezifikation.
  • Bereitstellungszugriff auf die Ressourcengruppe oder den sonstigen Bereich, für die/den er die Bereitstellung durchführen möchte.

Azure überprüft vor dem Beginn der Bereitstellung beide Bedingungen.