Nasazení skupin prostředků pomocí šablon ARM
Tento článek popisuje, jak nastavit rozsah nasazení na skupinu prostředků. K nasazení použijete šablonu Azure Resource Manager (šablonu ARM). Tento článek také ukazuje, jak v operaci nasazení rozšířit rozsah nad rámec skupiny prostředků.
Tip
Doporučujeme Bicep , protože nabízí stejné funkce 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 nasazení skupiny prostředků.
Pro Azure CLI použijte az deployment group create. Následující příklad nasadí šablonu k 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 o příkazech nasazení a možnostech nasazení šablon ARM najdete tady:
- Nasazení prostředků pomocí šablon ARM a Azure Portal
- Nasazení prostředků pomocí šablon ARM a Azure CLI
- Nasazení prostředků pomocí šablon ARM a Azure PowerShell
- Nasazení prostředků pomocí šablon ARM a rozhraní REST API azure Resource Manager
- Použití tlačítka nasazení k nasazení šablon z úložiště GitHub
- Nasazení šablon ARM z Cloud Shell
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ů
Prostředek rozšíření je možné omezit na cíl, který se liší od cíle nasazení.
Uživatel, který šablonu nasazuje, musí mít přístup k zadanému oboru.
V této části se dozvíte, jak zadat různé obory. Tyto různé obory můžete zkombinovat do jedné šablony.
Rozsah na cílovou skupinu prostředků
Pokud chcete nasadit prostředky do cílového prostředku, přidejte je do oddílu resources š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ů.
Obor 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 zahrňte vlastnost resourceGroup
. 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ů.
Obor 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 subscriptionId
vlastnosti a 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 subscriptionId
vlastnost . Předplatné může být předplatné cílové skupiny prostředků nebo jakékoli jiné předplatné v tenantovi. Nastavte location
také 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 v tenantovi vytvářet prostředky, nastavte na scope
/
. 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 /
na 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 najdete 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 určená 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 více 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é chcete vnořenou šablonu nasadit. Skupiny prostředků můžou existovat v různých předplatných.
Poznámka
V jednom nasazení můžete provést nasazení do 800 skupin prostředků . Toto omezení obvykle znamená, že můžete provést nasazení do jedné skupiny prostředků určené pro nadřazenou šablonu a až do 799 skupin prostředků ve vnořených nebo propojených nasazeních. Pokud však nadřazená šablona obsahuje jenom vnořené nebo propojené šablony a sama 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 parametrech secondResourceGroup
a 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ření skupiny prostředků
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 pro cloud najdete v tématu deployASCwithWorkspaceSettings.json.