Erőforráscsoportok üzembe helyezése ARM-sablonokkal

Ez a cikk azt ismerteti, hogyan lehet az üzemelő példányt egy erőforráscsoportra korlátozni. Az üzembe helyezéshez Azure Resource Manager sablont (ARM-sablont) használ. A cikk azt is bemutatja, hogyan bonthatja ki a hatókört az üzembe helyezési művelet erőforráscsoportja fölé.

Tipp

Azért javasoljuk a Bicep használatát, mert ugyanazokkal a képességekkel rendelkezik, mint az ARM-sablonok, és a szintaxis használata egyszerűbb. További információt az erőforráscsoport üzembe helyezései című témakörben talál.

Támogatott erőforrások

A legtöbb erőforrás üzembe helyezhető egy erőforráscsoportban. Az elérhető erőforrások listáját lásd: ARM-sablon referenciája.

Séma

Sablonok esetén használja a következő sémát:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  ...
}

Paraméterfájlok esetén használja a következőt:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  ...
}

Üzembehelyezési parancsok

Az erőforráscsoportban való üzembe helyezéshez használja az erőforráscsoport üzembehelyezési parancsát.

Az Azure CLI-hez használja az az deployment group create (Üzembe helyezési csoport létrehozása) lehetőséget. Az alábbi példa egy sablont helyez üzembe egy erőforráscsoport létrehozásához. A paraméterben --resource-group megadott erőforráscsoport a célerőforrás-csoport.

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

Az ARM-sablonok üzembe helyezési parancsaival és beállításaival kapcsolatos részletesebb információkért lásd:

Üzembehelyezési hatókörök

Erőforráscsoportban való üzembe helyezéskor az erőforrásokat a következőre helyezheti üzembe:

  • a művelet célerőforrás-csoportja
  • más erőforráscsoportok ugyanabban az előfizetésben vagy más előfizetésekben
  • bármely előfizetés a bérlőben
  • az erőforráscsoport bérlője

A bővítményerőforrás hatóköre az üzembehelyezési céltól eltérő célra terjedhet ki.

A sablont üzembe helyező felhasználónak hozzáféréssel kell rendelkeznie a megadott hatókörhöz.

Ez a szakasz bemutatja, hogyan adhat meg különböző hatóköröket. Ezeket a különböző hatóköröket egyetlen sablonban kombinálhatja.

Hatókör a cél erőforráscsoporthoz

Ha erőforrásokat szeretne üzembe helyezni a célerőforrásban, adja hozzá ezeket az erőforrásokat a sablon erőforrások szakaszához.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    resource-group-resources
  ],
  "outputs": {}
}

Példasablon: Üzembe helyezés célerőforrás-csoportra.

Hatókör ugyanabban az előfizetésben lévő erőforráscsoportra

Ha erőforrásokat szeretne üzembe helyezni egy másik erőforráscsoportban ugyanabban az előfizetésben, adjon hozzá egy beágyazott üzembe helyezést, és foglalja bele a tulajdonságot resourceGroup . Ha nem adja meg az előfizetés azonosítóját vagy erőforráscsoportját, a rendszer a szülősablonból származó előfizetést és erőforráscsoportot használja. Az üzembe helyezés futtatása előtt az összes erőforráscsoportnak léteznie kell.

A következő példában a beágyazott üzembe helyezés egy nevű demoResourceGrouperőforráscsoportot céloz meg.

{
  "$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éldasablon: Üzembe helyezés több erőforráscsoportban.

Hatókör különböző előfizetésben lévő erőforráscsoportra

Ha erőforrásokat szeretne üzembe helyezni egy másik előfizetésben lévő erőforráscsoportban, adjon hozzá egy beágyazott üzembe helyezést, és tartalmazza a és resourceGroup a subscriptionId tulajdonságokat. A következő példában a beágyazott üzembe helyezés egy nevű demoResourceGrouperőforráscsoportot céloz meg.

{
  "$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éldasablon: Üzembe helyezés több erőforráscsoportban.

Hatókör az előfizetéshez

Ha erőforrásokat szeretne üzembe helyezni egy előfizetésben, adjon hozzá egy beágyazott üzembe helyezést, és foglalja bele a tulajdonságot subscriptionId . Az előfizetés lehet a cél erőforráscsoport előfizetése vagy a bérlő bármely más előfizetése. Emellett állítsa be a location beágyazott üzembe helyezés tulajdonságát is.

{
  "$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éldasablon: Erőforráscsoport létrehozása.

Hatókör a bérlőre

Ha erőforrásokat szeretne létrehozni a bérlőben, állítsa a értéket a scope értékre /. A sablont üzembe helyező felhasználónak rendelkeznie kell a bérlőn való üzembe helyezéshez szükséges hozzáféréssel.

Beágyazott üzembe helyezés használatához állítsa be a és locationa értéketscope.

{
  "$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": {}
}

Vagy beállíthatja a hatókört / bizonyos erőforrástípusokra, például felügyeleti csoportokra.

{
  "$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')]"
    }
  }
}

További információ: Felügyeleti csoport.

Üzembe helyezés a cél erőforráscsoportban

Ha erőforrásokat szeretne üzembe helyezni a célerőforráscsoportban, definiálja ezeket az erőforrásokat a resources sablon szakaszában. Az alábbi sablon létrehoz egy tárfiókot az üzembe helyezési műveletben megadott erőforráscsoportban.

{
  "$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]"
    }
  }
}

Üzembe helyezés több erőforráscsoportban

Egyetlen ARM-sablonban több erőforráscsoportban is üzembe helyezheti azokat. Ha a szülősablontól eltérő erőforráscsoportot szeretne megcélzni, használjon beágyazott vagy csatolt sablont. Az üzembehelyezési erőforrástípuson belül adja meg annak az előfizetés-azonosítónak és erőforráscsoportnak az értékeit, amelyekre telepíteni szeretné a beágyazott sablont. Az erőforráscsoportok különböző előfizetésekben is létezhetnek.

Megjegyzés

Egyetlen üzemelő példányban 800 erőforráscsoportot helyezhet üzembe. Ez a korlátozás általában azt jelenti, hogy a fölérendelt sablonhoz megadott egyetlen erőforráscsoportban, illetve legfeljebb 799 erőforráscsoportban helyezhet üzembe beágyazott vagy csatolt üzemelő példányokban. Ha azonban a szülősablon csak beágyazott vagy csatolt sablonokat tartalmaz, és önmagában nem helyez üzembe erőforrásokat, akkor akár 800 erőforráscsoportot is belefoglalhat beágyazott vagy csatolt környezetekbe.

Az alábbi példa két tárfiókot helyez üzembe. Az első tárfiók az üzembe helyezési műveletben megadott erőforráscsoportra lesz üzembe helyezve. A második tárfiók a és secondSubscriptionID paraméterekben megadott erőforráscsoportra secondResourceGroup van üzembe helyezve:

{
  "$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": {}
      }
    }
  ]
}

Ha egy nem létező erőforráscsoport nevére van állítva resourceGroup , az üzembe helyezés sikertelen lesz.

Az előző sablon teszteléséhez és az eredmények megtekintéséhez használja a PowerShellt vagy az Azure CLI-t.

Ha két tárfiókot szeretne üzembe helyezni két erőforráscsoportban ugyanabban az előfizetésben, használja a következőt:

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

Ha két tárfiókot szeretne üzembe helyezni két előfizetésben, használja a következőt:

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

Erőforráscsoport létrehozása

Egy erőforráscsoport üzembe helyezéséből átválthat az előfizetés szintjére, és létrehozhat egy erőforráscsoportot. Az alábbi sablon egy tárfiókot helyez üzembe a cél erőforráscsoportban, és létrehoz egy új erőforráscsoportot a megadott előfizetésben.

{
  "$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": {}
        }
      }
    }
  ]
}

Következő lépések