Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erfahren Sie, wie Sie eine Vorlagenspezifikation mit einer Hauptvorlage und einer verknüpften Vorlage erstellen. Sie verwenden Vorlagenspezifikationen, um ARM-Vorlagen für andere Benutzer in Ihrer Organisation freizugeben. In diesem Artikel wird erläutert, wie Sie eine Vorlagenspezifikation zum Packen einer Hauptvorlage und der verknüpften Vorlagen mithilfe relativePath
der Eigenschaft der Bereitstellungsressource erstellen.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.
Hinweis
Um Vorlagenspezifikationen mit Azure PowerShell zu verwenden, müssen Sie Version 5.0.0 oder höher installieren. Zur Verwendung mit der Azure CLI verwenden Sie mindestens Version 2.14.2.
Erstellen verknüpfter Vorlagen
Erstellen Sie die Hauptvorlage und die verknüpfte Vorlage.
Zum Verknüpfen einer Vorlage fügen Sie der Hauptvorlage eine Bereitstellungsressource hinzu. Geben Sie in der templateLink
Eigenschaft den relativen Pfad der verknüpften Vorlage gemäß dem Pfad der übergeordneten Vorlage an.
Die verknüpfte Vorlage wird linkedTemplate.jsongenannt und wird in einem Unterordner gespeichert, der als Artefakte bezeichnet wird, im Pfad, in dem die Hauptvorlage gespeichert ist. Sie können einen der folgenden Werte für den relativePath verwenden.
./artifacts/linkedTemplate.json
/artifacts/linkedTemplate.json
artifacts/linkedTemplate.json
Die relativePath
-Eigenschaft ist immer relativ zu der Vorlagendatei, in der relativePath
deklariert wird. Daher, wenn ein weiterer linkedTemplate2.json vorhanden ist, der von linkedTemplate.json aufgerufen wird und linkedTemplate2.json im gleichen Artefaktunterordner gespeichert wird, lautet der relativePath, der in linkedTemplate.json angegeben ist, einfach linkedTemplate2.json
.
Erstellen Sie die Hauptvorlage mit dem folgenden JSON.Create the main template with the following JSON. Speichern Sie die Hauptvorlage als azuredeploy.json auf Ihrem lokalen Computer. In diesem Tutorial wird davon ausgegangen, dass die Speicherung unter dem Pfad c:\Templates\linkedTS\azuredeploy.json erfolgt ist. Sie können jedoch einen beliebigen Pfad verwenden.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "___location": { "type": "string", "defaultValue": "westus2", "metadata":{ "description": "Specify the ___location for the resources." } }, "storageAccountType": { "type": "string", "defaultValue": "Standard_LRS", "metadata":{ "description": "Specify the storage account type." } } }, "variables": { "appServicePlanName": "[format('plan{0}', uniquestring(resourceGroup().id))]" }, "resources": [ { "type": "Microsoft.Web/serverfarms", "apiVersion": "2022-09-01", "name": "[variables('appServicePlanName')]", "___location": "[parameters('___location')]", "sku": { "name": "B1", "tier": "Basic", "size": "B1", "family": "B", "capacity": 1 }, "kind": "linux", "properties": { "perSiteScaling": false, "reserved": true, "targetWorkerCount": 0, "targetWorkerSizeId": 0 } }, { "type": "Microsoft.Resources/deployments", "apiVersion": "2022-09-01", "name": "createStorage", "properties": { "mode": "Incremental", "templateLink": { "relativePath": "artifacts/linkedTemplate.json" }, "parameters": { "storageAccountType": { "value": "[parameters('storageAccountType')]" } } } } ] }
Hinweis
Die apiVersion von
Microsoft.Resources/deployments
muss 2020-06-01 oder höher sein.Erstellen Sie ein Verzeichnis namens Artefakte im Ordner, in dem die Hauptvorlage gespeichert wird.
Erstellen Sie die verknüpfte Vorlage mit dem folgenden JSON:Create the linked template with the following 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." } } }, "variables": { "storageAccountName": "[format('store{0}', uniquestring(resourceGroup().id))]" }, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2022-09-01", "name": "[variables('storageAccountName')]", "___location": "[parameters('___location')]", "sku": { "name": "[parameters('storageAccountType')]" }, "kind": "StorageV2", "properties": {} } ], "outputs": { "storageAccountName": { "type": "string", "value": "[variables('storageAccountName')]" } } }
Speichern Sie die Vorlage als linkedTemplate.json im Artefakte-Ordner.
Erstellen von Vorlagenspezifikationen
Vorlagenspezifikationen werden in Ressourcengruppen gespeichert. Erstellen Sie eine Ressourcengruppe, und erstellen Sie dann eine Vorlagenspezifikation mit dem folgenden Skript. Der Vorlagenspezifikationsname ist webSpec.
New-AzResourceGroup `
-Name templateSpecRG `
-Location westus2
New-AzTemplateSpec `
-Name webSpec `
-Version "1.0.0.0" `
-ResourceGroupName templateSpecRG `
-Location westus2 `
-TemplateFile "c:\Templates\linkedTS\azuredeploy.json"
Wenn Sie fertig sind, können Sie die Vorlagenspezifikation über das Azure-Portal oder mithilfe des folgenden Cmdlets anzeigen:
Get-AzTemplateSpec -ResourceGroupName templatespecRG -Name webSpec
Bereitstellen der Vorlagenspezifikationen
Sie können jetzt die Vorlagenspezifikation bereitstellen. Die Bereitstellung der Vorlagenspezifikation ähnelt der Bereitstellung der darin enthaltenen Vorlage, mit der Ausnahme, dass Sie die Ressourcen-ID der Vorlagenspezifikation übergeben. Sie verwenden dieselben Bereitstellungsbefehle und übergeben bei Bedarf Parameterwerte für die Vorlagenspezifikation.
New-AzResourceGroup `
-Name webRG `
-Location westus2
$id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name webSpec -Version "1.0.0.0").Versions.Id
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName webRG
Nächste Schritte
Weitere Informationen zur Bereitstellung einer Vorlagenspezifikation als verknüpfte Vorlage finden Sie unter Tutorial: Bereitstellen einer Vorlagenspezifikation als verknüpfte Vorlage.