Sdílet prostřednictvím


Oborové funkce pro šablony ARM

Resource Manager poskytuje následující funkce pro získání hodnot rozsahu nasazení v šabloně Azure Resource Manageru (šablona ARM):

Pokud chcete získat hodnoty z parametrů, proměnných nebo aktuálního nasazení, podívejte se na funkce hodnot 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 Funkce oboru .

managementGroup

managementGroup()

Vrátí objekt s vlastnostmi ze skupiny pro správu v aktuálním nasazení.

V Bicep použijte funkci oboru managementGroup .

Poznámky

managementGroup() lze použít pouze v nasazení skupiny pro správu. Vrátí aktuální skupinu pro správu pro operaci nasazení. Slouží k získání vlastností pro aktuální skupinu pro správu.

Vrácená hodnota

Objekt s vlastnostmi aktuální skupiny pro správu.

Příklad skupiny pro správu

Následující příklad vrátí vlastnosti pro aktuální skupinu pro správu.

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

Vrátí se:

"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": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
    },
    "type": "/providers/Microsoft.Management/managementGroups"
  }
}

Další příklad vytvoří novou skupinu pro správu a použije tuto funkci k nastavení nadřazené skupiny pro správu.

{
  "$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()

Vrátí objekt, který představuje aktuální skupinu prostředků.

V Bicep použijte funkci oboru resourceGroup .

Vrácená hodnota

Vrácený objekt je v následujícím formátu:

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

Vlastnost managedBy se vrátí pouze pro skupiny prostředků, které obsahují prostředky spravované jinou službou. U spravovaných aplikací, Databricks a AKS je hodnota vlastnosti ID prostředku pro správu prostředku.

Poznámky

Funkci resourceGroup() nelze použít v šabloně nasazené na úrovni předplatného. Dá se použít jenom v šablonách, které jsou nasazené do skupiny prostředků. Funkci můžete použít resourceGroup() v propojené nebo vnořené šabloně (s vnitřním oborem), která cílí na skupinu prostředků, i když je nadřazená šablona nasazená do předplatného. V tomto scénáři se propojená nebo vnořená šablona nasadí na úrovni skupiny prostředků. Další informace o cílení na skupinu prostředků v nasazení na úrovni předplatného najdete v tématu Nasazení prostředků Azure do více než jednoho předplatného nebo skupiny prostředků.

Běžným použitím funkce resourceGroup je vytvoření prostředků ve stejném umístění jako skupina prostředků. Následující příklad používá umístění skupiny prostředků pro výchozí hodnotu parametru.

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

Funkci můžete také použít resourceGroup k použití značek ze skupiny prostředků na prostředek. Další informace najdete v tématu Použití značek ze skupiny prostředků.

Při použití vnořených šablon k nasazení do více skupin prostředků můžete určit rozsah vyhodnocení resourceGroup funkce. Další informace najdete v tématu Nasazení prostředků Azure do více než jednoho předplatného nebo skupiny prostředků.

Příklad skupiny prostředků

Následující příklad vrátí vlastnosti skupiny prostředků.

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

Předchozí příklad vrátí objekt v následujícím formátu:

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

předplatné

subscription()

Vrátí podrobnosti o předplatném pro aktuální nasazení.

V Bicep použijte funkci oboru předplatného.

Vrácená hodnota

Funkce vrátí následující formát:

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

Poznámky

Při použití vnořených šablon k nasazení do více předplatných můžete určit rozsah pro vyhodnocení funkce předplatného. Další informace najdete v tématu Nasazení prostředků Azure do více než jednoho předplatného nebo skupiny prostředků.

Příklad předplatného

Následující příklad ukazuje funkci předplatného volanou v části výstupy.

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

tenant

tenant()

Vrátí tenanta uživatele.

V Bicep použijte funkci oboru tenanta.

Poznámky

tenant() lze použít s libovolným oborem nasazení. Vždy vrátí aktuálního tenanta. Tato funkce slouží k získání vlastností pro aktuálního tenanta.

Při nastavování oboru propojené šablony nebo prostředku rozšíření použijte syntaxi: "scope": "/".

Vrácená hodnota

Objekt s vlastnostmi o aktuálním tenantovi.

Příklad tenanta

Následující příklad vrátí vlastnosti tenanta.

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

Vrátí se:

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

Další kroky