Delen via


Bereikfuncties voor ARM-sjablonen

Resource Manager biedt de volgende functies voor het ophalen van waarden voor implementatiebereiken in uw Azure Resource Manager-sjabloon (ARM-sjabloon):

Zie Waardefuncties voor implementatie om waarden op te halen uit parameters, variabelen of de huidige implementatie.

Tip

We raden Bicep aan omdat het dezelfde mogelijkheden biedt als ARM-sjablonen en de syntaxis gemakkelijker te gebruiken is. Zie bereikfuncties voor meer informatie.

managementGroup

managementGroup()

Retourneert een object met eigenschappen van de beheergroep in de huidige implementatie.

Gebruik in Bicep de bereikfunctie managementGroup .

Opmerkingen

managementGroup()kan alleen worden gebruikt voor implementaties van een beheergroep. Hiermee wordt de huidige beheergroep voor de implementatiebewerking geretourneerd. Gebruik dit om eigenschappen op te halen voor de huidige beheergroep.

Retourwaarde

Een object met de eigenschappen voor de huidige beheergroep.

Voorbeeld van beheergroep

In het volgende voorbeeld worden eigenschappen voor de huidige beheergroep geretourneerd.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "mgInfo": "[managementGroup()]"
  },
  "resources": [],
  "outputs": {
    "mgResult": {
      "type": "object",
      "value": "[variables('mgInfo')]"
    }
  }
}

Het volgende wordt geretourneerd:

"mgResult": {
  "type": "Object",
  "value": {
    "id": "/providers/Microsoft.Management/managementGroups/examplemg1",
    "name": "examplemg1",
    "properties": {
      "details": {
        "parent": {
          "displayName": "Tenant Root Group",
          "id": "/providers/Microsoft.Management/managementGroups/00000000-0000-0000-0000-000000000000",
          "name": "00000000-0000-0000-0000-000000000000"
        },
        "updatedBy": "00000000-0000-0000-0000-000000000000",
        "updatedTime": "2020-07-23T21:05:52.661306Z",
        "version": "1"
      },
      "displayName": "Example MG 1",
      "tenantId": "00000000-0000-0000-0000-000000000000"
    },
    "type": "/providers/Microsoft.Management/managementGroups"
  }
}

In het volgende voorbeeld wordt een nieuwe beheergroep gemaakt en deze functie gebruikt om de bovenliggende beheergroep in te stellen.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "mgName": {
      "type": "string",
      "defaultValue": "[format('mg-{0}', uniqueString(newGuid()))]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Management/managementGroups",
      "apiVersion": "2020-05-01",
      "scope": "/",
      "name": "[parameters('mgName')]",
      "properties": {
        "details": {
          "parent": {
            "id": "[managementGroup().id]"
          }
        }
      }
    }
  ],
  "outputs": {
    "newManagementGroup": {
      "type": "string",
      "value": "[parameters('mgName')]"
    }
  }
}

resourceGroup

resourceGroup()

Retourneert een object dat de huidige resourcegroep vertegenwoordigt.

Gebruik in Bicep de bereikfunctie resourceGroup .

Retourwaarde

Het geretourneerde object heeft de volgende indeling:

{
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
  "name": "{resourceGroupName}",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "{resourceGroupLocation}",
  "managedBy": "{identifier-of-managing-resource}",
  "tags": {
  },
  "properties": {
    "provisioningState": "{status}"
  }
}

De eigenschap managedBy wordt alleen geretourneerd voor resourcegroepen die resources bevatten die worden beheerd door een andere service. Voor beheerde toepassingen, Databricks en AKS is de waarde van de eigenschap de resource-id van de beheerresource.

Opmerkingen

De resourceGroup() functie kan niet worden gebruikt in een sjabloon die is geïmplementeerd op abonnementsniveau. Deze kan alleen worden gebruikt in sjablonen die zijn geïmplementeerd in een resourcegroep. U kunt de resourceGroup() functie gebruiken in een gekoppelde of geneste sjabloon (met binnenbereik) die is gericht op een resourcegroep, zelfs wanneer de bovenliggende sjabloon wordt geïmplementeerd in het abonnement. In dat scenario wordt de gekoppelde of geneste sjabloon geïmplementeerd op het niveau van de resourcegroep. Zie Azure-resources implementeren in meer dan één abonnement of resourcegroep voor meer informatie over het instellen van een resourcegroep in een implementatie op abonnementsniveau.

Een veelvoorkomend gebruik van de functie resourceGroup is het maken van resources op dezelfde locatie als de resourcegroep. In het volgende voorbeeld wordt de locatie van de resourcegroep gebruikt voor een standaardparameterwaarde.

"parameters": {
  "location": {
    "type": "string",
    "defaultValue": "[resourceGroup().location]"
  }
}

U kunt de resourceGroup functie ook gebruiken om tags uit de resourcegroep toe te passen op een resource. Zie Tags toepassen uit de resourcegroep voor meer informatie.

Wanneer u geneste sjablonen gebruikt om te implementeren in meerdere resourcegroepen, kunt u het bereik opgeven voor het evalueren van de resourceGroup functie. Zie Azure-resources implementeren in meer dan één abonnement of resourcegroep voor meer informatie.

Voorbeeld van resourcegroep

In het volgende voorbeeld worden de eigenschappen van de resourcegroep geretourneerd.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "resourceGroupOutput": {
      "type": "object",
      "value": "[resourceGroup()]"
    }
  }
}

In het voorgaande voorbeeld wordt een object in de volgende indeling geretourneerd:

{
  "id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
  "name": "examplegroup",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "southcentralus",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

abonnement

subscription()

Retourneert details over het abonnement voor de huidige implementatie.

Gebruik in Bicep de functie abonnementsbereik .

Retourwaarde

De functie retourneert de volgende indeling:

{
  "id": "/subscriptions/{subscription-id}",
  "subscriptionId": "{subscription-id}",
  "tenantId": "{tenant-id}",
  "displayName": "{name-of-subscription}"
}

Opmerkingen

Wanneer u geneste sjablonen gebruikt om te implementeren in meerdere abonnementen, kunt u het bereik opgeven voor het evalueren van de abonnementsfunctie. Zie Azure-resources implementeren in meer dan één abonnement of resourcegroep voor meer informatie.

Voorbeeld van abonnement

In het volgende voorbeeld ziet u de abonnementsfunctie die wordt aangeroepen in de sectie uitvoer.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "subscriptionOutput": {
      "type": "object",
      "value": "[subscription()]"
    }
  }
}

AD-tenant

tenant()

Retourneert de tenant van de gebruiker.

Gebruik in Bicep de functie tenantbereik .

Opmerkingen

tenant() kan worden gebruikt met elk implementatiebereik. De huidige tenant wordt altijd geretourneerd. Gebruik deze functie om eigenschappen op te halen voor de huidige tenant.

Gebruik de syntaxis bij het instellen van het bereik voor een gekoppelde sjabloon of extensieresource: "scope": "/"

Retourwaarde

Een object met eigenschappen over de huidige tenant.

Voorbeeld van tenant

In het volgende voorbeeld worden de eigenschappen voor een tenant geretourneerd.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "tenantInfo": "[tenant()]"
  },
  "resources": [],
  "outputs": {
    "tenantResult": {
      "type": "object",
      "value": "[variables('tenantInfo')]"
    }
  }
}

Het volgende wordt geretourneerd:

"tenantResult": {
  "type": "Object",
  "value": {
    "countryCode": "US",
    "displayName": "Contoso",
    "id": "/tenants/00000000-0000-0000-0000-000000000000",
    "tenantId": "00000000-0000-0000-0000-000000000000"
  }
}

Volgende stappen