Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dowiedz się, jak utworzyć specyfikację szablonu przy użyciu szablonu głównego i połączonego szablonu. Używasz specyfikacji szablonu do udostępniania szablonów usługi ARM innym użytkownikom w organizacji. W tym artykule pokazano, jak utworzyć specyfikację szablonu, aby spakować szablon główny i jego połączone szablony przy użyciu relativePath właściwości zasobu wdrożenia.
Wymagania wstępne
Konto Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
Uwaga / Notatka
Aby użyć specyfikacji szablonu w programie Azure PowerShell, należy zainstalować wersję 5.0.0 lub nowszą. Aby używać go z interfejsem wiersza polecenia platformy Azure, użyj wersji 2.14.2 lub nowszej.
Tworzenie połączonych szablonów
Utwórz szablon główny i połączony szablon.
Aby połączyć szablon, dodaj zasób wdrożenia do głównego szablonu.
templateLink We właściwości określ ścieżkę względną połączonego szablonu zgodnie ze ścieżką szablonu nadrzędnego.
Połączony szablon jest nazywany linkedTemplate.jsoni jest przechowywany w podfolderze nazywanym artefaktami w ścieżce, w której jest przechowywany główny szablon. Dla parametru relativePath można użyć jednej z następujących wartości:
./artifacts/linkedTemplate.json/artifacts/linkedTemplate.jsonartifacts/linkedTemplate.json
Właściwość relativePath jest zawsze względna względem pliku szablonu, w którym relativePath jest zadeklarowana, więc jeśli istnieje inny linkedTemplate2.json wywoływany z linkedTemplate.json i linkedTemplate2.json jest przechowywany w tym samym podfolderze artefaktów, względna ścieżka określona w linkedTemplate.json to tylko linkedTemplate2.json.
Utwórz szablon główny przy użyciu następującego kodu JSON. Zapisz szablon główny jakoazuredeploy.json na komputerze lokalnym. W tym samouczku założono, że zapisano ścieżkę c:\Templates\linkedTS\azuredeploy.js, ale możesz użyć dowolnej ścieżki.
{ "$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": "2025-03-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": "2025-04-01", "name": "createStorage", "properties": { "mode": "Incremental", "templateLink": { "relativePath": "artifacts/linkedTemplate.json" }, "parameters": { "storageAccountType": { "value": "[parameters('storageAccountType')]" } } } } ] }Uwaga / Notatka
Parametr apiVersion
Microsoft.Resources/deploymentsmusi mieć wartość 2020-06-01 lub nowszą.Utwórz katalog o nazwie artifacts w folderze, w którym jest zapisywany główny szablon.
Utwórz połączony szablon z następującym kodem 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": "2025-06-01", "name": "[variables('storageAccountName')]", "location": "[parameters('location')]", "sku": { "name": "[parameters('storageAccountType')]" }, "kind": "StorageV2", "properties": {} } ], "outputs": { "storageAccountName": { "type": "string", "value": "[variables('storageAccountName')]" } } }Zapisz szablon jakolinkedTemplate.json w folderze artifacts .
Tworzenie specyfikacji szablonu
Specyfikacje szablonów są przechowywane w grupach zasobów. Utwórz grupę zasobów, a następnie utwórz specyfikację szablonu przy użyciu następującego skryptu. Nazwa specyfikacji szablonu to 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"
Po zakończeniu możesz wyświetlić specyfikację szablonu w witrynie Azure Portal lub za pomocą następującego polecenia cmdlet:
Get-AzTemplateSpec -ResourceGroupName templatespecRG -Name webSpec
Wdrażanie specyfikacji szablonu
Teraz możesz wdrożyć specyfikację szablonu. Wdrażanie specyfikacji szablonu jest podobne do wdrażania zawartego w nim szablonu, z tą różnicą, że przekazano identyfikator zasobu specyfikacji szablonu. Użyj tych samych poleceń wdrażania, a w razie potrzeby przekaż wartości parametrów specyfikacji szablonu.
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
Dalsze kroki
Aby dowiedzieć się więcej o wdrażaniu specyfikacji szablonu jako szablonu połączonego, zobacz Samouczek: wdrażanie specyfikacji szablonu jako szablonu połączonego.