Schnellstart: Erstellen und Bereitstellen einer Vorlagenspezifikation mit Bicep

In dieser Schnellstartanleitung wird beschrieben, wie Sie eine Vorlagenspezifikation mit einer Bicep-Datei erstellen und bereitstellen. Eine Vorlagenspezifikation wird für eine Ressourcengruppe bereitgestellt, damit Personen in Ihrer Organisation Ressourcen in Microsoft Azure bereitstellen können. Mithilfe von Vorlagenspezifikationen können Sie Bereitstellungsvorlagen freigeben, ohne Benutzern Zugriff zum Ändern der Bicep-Datei zu erteilen. In diesem Beispiel für eine Vorlagenspezifikation wird eine Bicep-Datei verwendet, um ein Speicherkonto bereitzustellen.

Wenn Sie eine Vorlagenspezifikation erstellen, wird die Bicep-Datei in JavaScript Object Notation (JSON) transpiliert. Die Vorlagenspezifikation verwendet JSON zum Bereitstellen von Azure-Ressourcen. Derzeit können Sie das Microsoft Azure-Portal nicht verwenden, um eine Bicep-Datei zu importieren und eine Vorlagenspezifikationenressource zu erstellen.

Voraussetzungen

Erstellen einer Bicep-Datei

Sie erstellen eine Vorlagenspezifikation aus einer lokalen Bicep-Datei. Kopieren Sie das folgende Beispiel, und speichern Sie es als main.bicep auf Ihrem Computer. In den Beispielen wird der Pfad C:\templates\main.bicep verwendet. Sie können einen anderen Pfad verwenden, müssen dann jedoch die Befehle ändern.

Die folgende Bicep-Datei wird auf den Registerkarten PowerShell und Befehlszeilenschnittstelle (CLI) verwendet. Auf der Registerkarte Bicep-Datei wird eine andere Vorlage verwendet, die Bicep und JSON kombiniert, um eine Vorlagenspezifikation zu erstellen und bereitzustellen.

@allowed([
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GRS'
  'Standard_GZRS'
  'Standard_LRS'
  'Standard_RAGRS'
  'Standard_RAGZRS'
  'Standard_ZRS'
])
@description('Storage account type.')
param storageAccountType string = 'Standard_LRS'

@description('Location for all resources.')
param location string = resourceGroup().location

var storageAccountName = 'storage${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountType
  }
  kind: 'StorageV2'
  properties: {}
}

output storageAccountNameOutput string = storageAccount.name

Erstellen von Vorlagenspezifikationen

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

In diesem Beispiel wird als Ressourcengruppenname templateSpecRG verwendet. Sie können einen anderen Namen verwenden, müssen dann jedoch die Befehle ändern.

  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\main.bicep"
    

Bereitstellen der Vorlagenspezifikationen

Verwenden Sie die Vorlagenspezifikation, um ein Speicherkonto bereitzustellen. In diesem Beispiel wird als Ressourcengruppenname storageRG verwendet. Sie können einen anderen Namen verwenden, müssen dann jedoch die Befehle ändern.

  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 Parameter genau wie bei der Bereitstellung einer Bicep-Datei 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 einer Bicep-Datei

Nachdem die Vorlagenspezifikation erstellt wurde, möchten Sie die Bicep-Datei aktualisieren. Um mit den Beispielen auf den Registerkarten PowerShell oder Befehlszeilenschnittstelle (CLI) fortzufahren, kopieren Sie das Beispiel, und ersetzen Sie Ihre Datei main.bicep.

Der Parameter storageNamePrefix gibt einen Präfixwert für den Speicherkontonamen an. Die Variable storageAccountName verkettet das Präfix mit einer eindeutigen Zeichenfolge.

@allowed([
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GRS'
  'Standard_GZRS'
  'Standard_LRS'
  'Standard_RAGRS'
  'Standard_RAGZRS'
  'Standard_ZRS'
])
@description('Storage account type.')
param storageAccountType string = 'Standard_LRS'

@description('Location for all resources.')
param location string = resourceGroup().location

@maxLength(11)
@description('The storage account name prefix.')
param storageNamePrefix string = 'storage'

var storageAccountName = '${toLower(storageNamePrefix)}${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountType
  }
  kind: 'StorageV2'
  properties: {}
}

output storageAccountNameOutput string = storageAccount.name

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 wählen, welche der beiden Versionen sie bereitstellen möchten.

  1. Erstellen Sie eine neue Version der Vorlagenspezifikation.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "C:\templates\main.bicep"
    
  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 die neue Version bereit, und geben Sie mit storageNamePrefix ein Präfix für den Speicherkontonamen an.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -storageNamePrefix "demo"
    

Bereinigen von Ressourcen

Löschen Sie zum Bereinigen der in dieser Schnellstartanleitung bereitgestellten Ressourcen beide Ressourcengruppen. Die Ressourcengruppe, Vorlagenspezifikationen und Speicherkonten werden gelöscht.

Löschen Sie die Ressourcengruppen über Azure PowerShell oder über die Azure CLI.

Remove-AzResourceGroup -Name "templateSpecRG"

Remove-AzResourceGroup -Name "storageRG"
az group delete --name templateSpecRG

az group delete --name storageRG

Nächste Schritte