Schnellstart: Erstellen und Bereitstellen von Vorlagenspezifikationen

Dieser Schnellstart zeigt Ihnen, wie Sie eine Azure Resource Manager-Vorlage (ARM-Vorlage) in eine Vorlagenspezifikation packen. Anschließend stellen Sie diese Vorlagenspezifikation bereit. Ihre Vorlagenspezifikation enthält eine ARM-Vorlage, mit der ein Speicherkonto bereitgestellt wird.

Tipp

Wir empfehlen Bicep, weil es dieselben Funktionen wie ARM-Vorlagen bietet und die Syntax einfacher zu verwenden ist. Weitere Informationen finden Sie unter Schnellstart: Erstellen und Bereitstellen einer Vorlagenspezifikation mit Bicep.

Voraussetzungen

Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.

Hinweis

Um Vorlagenspezifikationen mit Azure PowerShell zu verwenden, müssen Sie mindestens Version 5.0.0 installieren. Zur Verwendung mit der Azure CLI verwenden Sie mindestens Version 2.14.2.

Erstellen der Vorlage

Sie erstellen eine Vorlagenspezifikation aus einer lokalen Vorlage. Kopieren Sie die folgende Vorlage, und speichern Sie sie lokal in einer Datei namens azuredeploy.json. In dieser Schnellstartanleitung wird davon ausgegangen, dass die Speicherung im Pfad c:\Templates\azuredeploy.json erfolgt ist, aber Sie können einen beliebigen Pfad verwenden.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.13.1.58284",
      "templateHash": "13120038605368246703"
    }
  },
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GRS",
        "Standard_GZRS",
        "Standard_LRS",
        "Standard_RAGRS",
        "Standard_RAGZRS",
        "Standard_ZRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The storage account location."
      }
    },
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('store{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "The name of the storage account"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2022-09-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[parameters('storageAccountName')]"
    },
    "storageAccountId": {
      "type": "string",
      "value": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
    }
  }
}

Erstellen von Vorlagenspezifikationen

Die Vorlagenspezifikation ist ein Ressourcentyp namens Microsoft.Resources/templateSpecs. Verwenden Sie zum Erstellen einer Vorlagenspezifikation PowerShell, die Azure CLI, das Portal oder eine ARM-Vorlage.

  1. Erstellen Sie eine neue Ressourcengruppe, die die Vorlagenspezifikation enthält.

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. Erstellen Sie die Vorlagenspezifikation in dieser Ressourcengruppe. Weisen Sie der neuen Vorlagenspezifikation den Namen storageSpec zu.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "1.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "c:\Templates\azuredeploy.json"
    

Bereitstellen der Vorlagenspezifikationen

Verwenden Sie zum Bereitstellen einer Vorlagenspezifikation dieselben Bereitstellungsbefehle wie zum Bereitstellen einer Vorlage. Übergeben Sie die Ressourcen-ID der bereitzustellenden Vorlagenspezifikation.

  1. Erstellen Sie eine Ressourcengruppe, die das neue Speicherkonto enthält.

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. Rufen Sie die Ressourcen-ID der Vorlagenspezifikation ab.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
    
  3. Stellen Sie die Vorlagenspezifikation bereit.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. Sie geben die Parameter genau wie bei einer ARM-Vorlage an. Stellen Sie die Vorlagenspezifikation mit einem Parameter für den Speicherkontotyp erneut bereit.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -storageAccountType Standard_GRS
    

Gewähren von Zugriff

Wenn Sie anderen Benutzern in Ihrer Organisation die Bereitstellung Ihrer Vorlagenspezifikation gestatten möchten, müssen Sie ihnen Lesezugriff gewähren. Sie können die Rolle „Leser“ einer Microsoft Entra-Gruppe für die Ressourcengruppe zuweisen, die freizugebende Vorlagenspezifikationen enthält. Weitere Informationen finden Sie im Tutorial: Gewähren des Zugriffs auf Azure-Ressourcen für eine Gruppe mithilfe von Azure PowerShell.

Aktualisieren der Vorlage

Angenommen, Sie haben eine Änderung identifiziert, die Sie an der Vorlage in Ihrer Vorlagenspezifikation vornehmen möchten. Die folgende Vorlage ähnelt Ihrer früheren Vorlage, mit der Ausnahme, dass sie ein Präfix für den Speicherkontonamen hinzufügt. Kopieren Sie die folgende Vorlage, und aktualisieren Sie die Datei „azuredeploy.json“.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_ZRS",
        "Premium_LRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "namePrefix": {
      "type": "string",
      "maxLength": 11,
      "defaultValue": "store",
      "metadata": {
        "description": "Prefix for storage account name"
      }
    }
  },
  "variables": {
    "storageAccountName": "[concat(parameters('namePrefix'), uniquestring(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[variables('storageAccountName')]"
    }
  }
}

Aktualisieren der Vorlagenspezifikationsversion

Anstatt eine neue Vorlagenspezifikation für die überarbeitete Vorlage zu erstellen, fügen Sie der vorhandenen Vorlagenspezifikation eine neue Version mit dem Namen 2.0 hinzu. Benutzer können eine beliebige bereitzustellende Version auswählen.

  1. Erstellen Sie eine neue Version der Vorlagenspezifikation.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "c:\Templates\azuredeploy.json"
    
  2. Um die neue Version bereitzustellen, müssen Sie die Ressourcen-ID für die 2.0-Version abrufen.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. Stellen Sie diese Version bereit. Geben Sie ein Präfix für den Namen des Speicherkontos an.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -namePrefix "demoaccount"
    

Bereinigen von Ressourcen

Löschen Sie zum Bereinigen der in dieser Schnellstartanleitung bereitgestellten Ressource beide Ressourcengruppen, die Sie erstellt haben.

  1. Wählen Sie im Azure-Portal im linken Menü die Ressourcengruppe aus.

  2. Geben Sie den Ressourcengruppennamen (templateSpecRG und storageRG) in das Feld „Nach Name filtern“ ein.

  3. Klicken Sie auf den Namen der Ressourcengruppe.

  4. Wählen Sie im Menü ganz oben den Befehl zum Löschen der Ressourcengruppe aus.

Nächste Schritte

Weitere Informationen zum Erstellen einer Vorlagenspezifikation, die verknüpfte Vorlagen umfasst, finden Sie unter Erstellen einer Vorlagenspezifikation einer verknüpften Vorlage.