Nasazení skupin prostředků pomocí šablon ARM
Tento článek popisuje, jak nastavit rozsah nasazení na skupinu prostředků. Pro nasazení použijete šablonu Azure Resource Manageru (šablonu ARM). Článek také ukazuje, jak rozšířit rozsah nad rámec skupiny prostředků v operaci nasazení.
Tip
Doporučujeme Bicep, protože nabízí stejné možnosti jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v tématu Nasazení skupin prostředků.
Podporované prostředky
Většinu prostředků je možné nasadit do skupiny prostředků. Seznam dostupných prostředků najdete v referenčních informacích k šabloně ARM.
Schéma
Pro šablony použijte následující schéma:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
...
}
Pro soubory parametrů použijte:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
...
}
Příkazy nasazení
K nasazení do skupiny prostředků použijte příkazy pro nasazení skupiny prostředků.
Pro Azure CLI použijte příkaz az deployment group create. Následující příklad nasadí šablonu pro vytvoření skupiny prostředků. Skupina prostředků, kterou zadáte v parametru --resource-group
, je cílová skupina prostředků.
az deployment group create \
--name demoRGDeployment \
--resource-group ExampleGroup \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json" \
--parameters storageAccountType=Standard_GRS
Podrobnější informace opříkazch
- Nasazení prostředků pomocí šablon ARM a webu Azure Portal
- Nasazení prostředků pomocí šablon ARM a Azure CLI
- Nasazení prostředků pomocí šablon ARM a Azure PowerShellu
- Nasazení prostředků pomocí šablon ARM a rozhraní REST API Azure Resource Manageru
- Použití tlačítka nasazení k nasazení šablon z úložiště GitHub
- Nasazení šablon ARM z Cloud Shellu
Obory nasazení
Při nasazování do skupiny prostředků můžete prostředky nasadit do:
- cílová skupina prostředků z operace
- jiné skupiny prostředků ve stejném předplatném nebo jiných předplatných
- libovolné předplatné v tenantovi
- tenant pro skupinu prostředků
K jediným zakázaným přechodům rozsahu dochází ze skupiny prostředků na skupinu pro správu nebo z předplatného na skupinu pro správu.
Prostředek rozšíření může být vymezen na cíl, který se liší od cíle nasazení.
Uživatel, který šablonu nasazuje, musí mít přístup k zadanému oboru.
Tato část ukazuje, jak zadat různé obory. Tyto různé obory můžete kombinovat v jedné šabloně.
Rozsah cílové skupiny prostředků
Pokud chcete nasadit prostředky do cílového prostředku, přidejte tyto prostředky do oddílu prostředků šablony.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
resource-group-resources
],
"outputs": {}
}
Příklad šablony najdete v tématu Nasazení do cílové skupiny prostředků.
Rozsah na skupinu prostředků ve stejném předplatném
Pokud chcete nasadit prostředky do jiné skupiny prostředků ve stejném předplatném, přidejte vnořené nasazení a přidejte resourceGroup
vlastnost. Pokud nezadáte ID předplatného nebo skupinu prostředků, použije se předplatné a skupina prostředků z nadřazené šablony. Před spuštěním nasazení musí existovat všechny skupiny prostředků.
V následujícím příkladu cílí vnořené nasazení na skupinu prostředků s názvem demoResourceGroup
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "nestedDeployment",
"resourceGroup": "demoResourceGroup",
"properties": {
"mode": "Incremental",
"template": {
resource-group-resources
}
}
}
],
"outputs": {}
}
Příklad šablony najdete v tématu Nasazení do více skupin prostředků.
Rozsah na skupinu prostředků v jiném předplatném
Pokud chcete nasadit prostředky do skupiny prostředků v jiném předplatném, přidejte vnořené nasazení a zahrňte vlastnostisubscriptionId
.resourceGroup
V následujícím příkladu cílí vnořené nasazení na skupinu prostředků s názvem demoResourceGroup
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "nestedDeployment",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroup": "demoResourceGroup",
"properties": {
"mode": "Incremental",
"template": {
resource-group-resources
}
}
}
],
"outputs": {}
}
Příklad šablony najdete v tématu Nasazení do více skupin prostředků.
Rozsah předplatného
Pokud chcete nasadit prostředky do předplatného, přidejte vnořené nasazení a přidejte vlastnost subscriptionId
. Předplatné může být předplatné cílové skupiny prostředků nebo jakékoli jiné předplatné v tenantovi. Také nastavte location
vlastnost pro vnořené nasazení.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "nestedDeployment",
"location": "centralus",
"subscriptionId": "0000000-0000-0000-0000-000000000000",
"properties": {
"mode": "Incremental",
"template": {
subscription-resources
}
}
}
],
"outputs": {}
}
Příklad šablony najdete v tématu Vytvoření skupiny prostředků.
Rozsah na tenanta
Pokud chcete vytvořit prostředky v tenantovi, nastavte scope
hodnotu /
. Uživatel, který šablonu nasazuje, musí mít požadovaný přístup k nasazení v tenantovi.
Pokud chcete použít vnořené nasazení, nastavte scope
a location
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "nestedDeployment",
"location": "centralus",
"scope": "/",
"properties": {
"mode": "Incremental",
"template": {
tenant-resources
}
}
}
],
"outputs": {}
}
Nebo můžete nastavit rozsah /
pro některé typy prostředků, jako jsou skupiny pro správu.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mgName": {
"type": "string",
"defaultValue": "[concat('mg-', uniqueString(newGuid()))]"
}
},
"resources": [
{
"type": "Microsoft.Management/managementGroups",
"apiVersion": "2021-04-01",
"name": "[parameters('mgName')]",
"scope": "/",
"location": "eastus",
"properties": {}
}
],
"outputs": {
"output": {
"type": "string",
"value": "[parameters('mgName')]"
}
}
}
Další informace naleznete v tématu Skupina pro správu.
Nasazení do cílové skupiny prostředků
Pokud chcete nasadit prostředky v cílové skupině prostředků, definujte tyto prostředky v resources
části šablony. Následující šablona vytvoří účet úložiště ve skupině prostředků, která je zadaná v operaci nasazení.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
Nasazení do několika skupin prostředků
V jedné šabloně ARM můžete provést nasazení do více než jedné skupiny prostředků. Pokud chcete cílit na skupinu prostředků, která se liší od skupiny prostředků nadřazené šablony, použijte vnořenou nebo propojenou šablonu. V rámci typu prostředku nasazení zadejte hodnoty PRO ID předplatného a skupinu prostředků, do které se má vnořená šablona nasadit. Skupiny prostředků mohou existovat v různých předplatných.
Poznámka:
V jednom nasazení můžete nasadit do 800 skupin prostředků. Toto omezení obvykle znamená, že můžete nasadit do jedné skupiny prostředků určené pro nadřazenou šablonu a až 799 skupin prostředků ve vnořených nebo propojených nasazeních. Pokud však nadřazená šablona obsahuje pouze vnořené nebo propojené šablony a nenasazuje žádné prostředky, můžete do vnořených nebo propojených nasazení zahrnout až 800 skupin prostředků.
Následující příklad nasadí dva účty úložiště. První účet úložiště se nasadí do skupiny prostředků zadané v operaci nasazení. Druhý účet úložiště se nasadí do skupiny prostředků zadané v parametrechsecondResourceGroup
:secondSubscriptionID
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"maxLength": 11
},
"secondResourceGroup": {
"type": "string"
},
"secondSubscriptionID": {
"type": "string",
"defaultValue": ""
},
"secondStorageLocation": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"variables": {
"firstStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
"secondStorageName": "[concat(parameters('storagePrefix'), uniqueString(parameters('secondSubscriptionID'), parameters('secondResourceGroup')))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[variables('firstStorageName')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {
}
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "nestedTemplate",
"resourceGroup": "[parameters('secondResourceGroup')]",
"subscriptionId": "[parameters('secondSubscriptionID')]",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[variables('secondStorageName')]",
"location": "[parameters('secondStorageLocation')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {
}
}
]
},
"parameters": {}
}
}
]
}
Pokud nastavíte resourceGroup
název skupiny prostředků, která neexistuje, nasazení selže.
Pokud chcete otestovat předchozí šablonu a zobrazit výsledky, použijte PowerShell nebo Azure CLI.
Pokud chcete nasadit dva účty úložiště do dvou skupin prostředků ve stejném předplatném, použijte:
firstRG="primarygroup"
secondRG="secondarygroup"
az group create --name $firstRG --location southcentralus
az group create --name $secondRG --location eastus
az deployment group create \
--name ExampleDeployment \
--resource-group $firstRG \
--template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/crosssubscription.json \
--parameters storagePrefix=tfstorage secondResourceGroup=$secondRG secondStorageLocation=eastus
Pokud chcete nasadit dva účty úložiště do dvou předplatných, použijte:
firstRG="primarygroup"
secondRG="secondarygroup"
firstSub="<first-subscription-id>"
secondSub="<second-subscription-id>"
az account set --subscription $secondSub
az group create --name $secondRG --location eastus
az account set --subscription $firstSub
az group create --name $firstRG --location southcentralus
az deployment group create \
--name ExampleDeployment \
--resource-group $firstRG \
--template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/crosssubscription.json \
--parameters storagePrefix=storage secondResourceGroup=$secondRG secondStorageLocation=eastus secondSubscriptionID=$secondSub
Vytvořit skupinu zdrojů
Z nasazení skupiny prostředků můžete přepnout na úroveň předplatného a vytvořit skupinu prostředků. Následující šablona nasadí účet úložiště do cílové skupiny prostředků a vytvoří novou skupinu prostředků v zadaném předplatném.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"maxLength": 11
},
"newResourceGroupName": {
"type": "string"
},
"nestedSubscriptionID": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"variables": {
"storageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[variables('storageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {
}
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "demoSubDeployment",
"location": "westus",
"subscriptionId": "[parameters('nestedSubscriptionID')]",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2021-04-01",
"name": "[parameters('newResourceGroupName')]",
"location": "[parameters('location')]",
"properties": {}
}
],
"outputs": {}
}
}
}
]
}
Další kroky
- Příklad nasazení nastavení pracovního prostoru pro Microsoft Defender for Cloud najdete v tématu deployASCwithWorkspace Nastavení.json.