Sdílet prostřednictvím


Oborové funkce pro šablony ARM

Azure 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

Bicep se doporučuje, protože nabízí stejné možnosti jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v tématu scope funkce.

managementGroup

managementGroup()

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

V Bicep použijte managementGroup funkci oboru.

Poznámky

managementGroup() lze použít pouze při 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.

Návratová 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')]"
    }
  }
}

Výstup je:

"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": "2024-02-01-preview",
      "scope": "/",
      "name": "[parameters('mgName')]",
      "properties": {
        "details": {
          "parent": {
            "id": "[managementGroup().id]"
          }
        }
      }
    }
  ],
  "outputs": {
    "newManagementGroup": {
      "type": "string",
      "value": "[parameters('mgName')]"
    }
  }
}

skupina zdrojů

resourceGroup()

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

V Bicep použijte resourceGroup funkci oboru.

Návratová 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() nejde 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 resourceGroup funkce 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"
  }
}

odběr

subscription()

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

V Bicep použijte subscription funkci oboru.

Návratová 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 vyhodnocení subscription 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 předplatného

Následující příklad ukazuje subscription funkci 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()]"
    }
  }
}

klient

tenant()

Vrátí tenanta uživatele.

V Bicep použijte tenant funkci oboru.

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": "/".

Návratová 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')]"
    }
  }
}

Výstup je:

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

Další kroky