Share via


Erőforráscsoport-környezetek ARM-sablonokkal

Ez a cikk azt ismerteti, hogyan hatókörzheti az üzemelő példányt egy erőforráscsoportra. 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 erőforráscsoporton túlra az üzembe helyezési műveletben.

Tipp.

A Bicep használatát javasoljuk, mert ugyanazokkal a képességekkel rendelkezik, mint az ARM-sablonok, és a szintaxis használata egyszerűbb. További információkért tekintse meg az erőforráscsoport üzemelő példányait.

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 az ARM-sablonreferenciában találja.

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 üzembehelyezési csoport létrehozását. 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 üzembehelyezési parancsokkal és az ARM-sablonok üzembe helyezési lehetőségével kapcsolatos további információkért lásd:

Üzembehelyezési hatókörök

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

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

Az egyetlen tiltott hatókörváltás erőforráscsoportról felügyeleti csoportra vagy előfizetésről felügyeleti csoportra történik.

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élerőforráscsoporthoz

Ha erőforrásokat szeretne üzembe helyezni a célerőforrásban, vegye fel ezeket az erőforrásokat a sablon erőforrások szakaszára.

{
  "$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áscsoportban.

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

Ha ugyanabban az előfizetésben egy másik erőforráscsoportba szeretne erőforrásokat telepíteni, adjon hozzá 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.

Az alábbi példában a beágyazott üzembe helyezés egy nevű erőforráscsoportot demoResourceGroupcé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 az erőforráscsoporthoz különböző előfizetésben

Ha az erőforrásokat egy másik előfizetés erőforráscsoportjában szeretné üzembe helyezni, adjon hozzá egy beágyazott üzembe helyezést, és tartalmazza a tulajdonságokat és resourceGroup a subscriptionId tulajdonságokat. Az alábbi példában a beágyazott üzembe helyezés egy nevű erőforráscsoportot demoResourceGroupcé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á beágyazott üzembe helyezést, és foglalja bele a tulajdonságot subscriptionId . Az előfizetés lehet a célerőforrás-csoport 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őhöz

Ha erőforrásokat szeretne létrehozni a bérlőben, állítsa be a scope következőt /: . 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 scope és 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": {}
}

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 célerőforrás-csoportban

Az erőforrások célerőforráscsoportban való üzembe helyezéséhez 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 helyezhető. A szülősablontól eltérő erőforráscsoport megcélzásához 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, amelyekbe a beágyazott sablont telepíteni szeretné. Az erőforráscsoportok különböző előfizetésekben is létezhetnek.

Feljegyzés

Egyetlen üzembe helyezés során 800 erőforráscsoportban telepíthet. Ez a korlátozás általában azt jelenti, hogy a szülősablonhoz megadott egy erőforráscsoportban, beágyazott vagy csatolt üzemelő példányokban pedig legfeljebb 799 erőforráscsoportban telepítheti azokat. Ha azonban a szülősablon csak beágyazott vagy csatolt sablonokat tartalmaz, és önmagában nem helyez üzembe erőforrásokat, akkor legfeljebb 800 erőforráscsoportot vehet fel beágyazott vagy csatolt üzemelő példányokba.

Az alábbi példa két tárfiókot helyez üzembe. Az első tárfiók üzembe helyezése az üzembe helyezési műveletben megadott erőforráscsoportban történik. A második tárfiók a következő paraméterekben secondSubscriptionID megadott erőforráscsoportban 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 meghiúsul.

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ével á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élerőforrás-csoportban, é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