Funções de âmbito para modelos do ARM

Resource Manager fornece as seguintes funções para obter valores de âmbito de implementação no modelo de Resource Manager do Azure (modelo arm):

Para obter valores de parâmetros, variáveis ou a implementação atual, veja Funções de valor de implementação.

Dica

Recomendamos o Bicep porque oferece as mesmas capacidades que os modelos do ARM e a sintaxe é mais fácil de utilizar. Para saber mais, veja funções de âmbito .

managementGroup

managementGroup()

Devolve um objeto com propriedades do grupo de gestão na implementação atual.

No Bicep, utilize a função de âmbito managementGroup .

Observações

managementGroup() só pode ser utilizado em implementações de grupos de gestão. Devolve o grupo de gestão atual para a operação de implementação. Utilize para obter propriedades para o grupo de gestão atual.

Valor devolvido

Um objeto com as propriedades do grupo de gestão atual.

Exemplo de grupo de gestão

O exemplo seguinte devolve propriedades para o grupo de gestão atual.

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

É devolvido:

"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"
  }
}

O exemplo seguinte cria um novo grupo de gestão e utiliza esta função para definir o grupo de gestão principal.

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

Devolve um objeto que representa o grupo de recursos atual.

No Bicep, utilize a função de âmbito resourceGroup .

Valor devolvido

O objeto devolvido está no seguinte formato:

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

A propriedade managedBy é devolvida apenas para grupos de recursos que contêm recursos geridos por outro serviço. Para Aplicações Geridas, Databricks e AKS, o valor da propriedade é o ID de recurso do recurso de gestão.

Observações

A resourceGroup() função não pode ser utilizada num modelo implementado ao nível da subscrição. Só pode ser utilizado em modelos implementados num grupo de recursos. Pode utilizar a resourceGroup() função num modelo ligado ou aninhado (com âmbito interno) que visa um grupo de recursos, mesmo quando o modelo principal é implementado na subscrição. Nesse cenário, o modelo ligado ou aninhado é implementado ao nível do grupo de recursos. Para obter mais informações sobre como direcionar um grupo de recursos numa implementação ao nível da subscrição, veja Implementar recursos do Azure em mais do que uma subscrição ou grupo de recursos.

Uma utilização comum da função resourceGroup é criar recursos na mesma localização que o grupo de recursos. O exemplo seguinte utiliza a localização do grupo de recursos para um valor de parâmetro predefinido.

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

Também pode utilizar a resourceGroup função para aplicar etiquetas do grupo de recursos a um recurso. Para obter mais informações, veja Aplicar etiquetas do grupo de recursos.

Ao utilizar modelos aninhados para implementar em vários grupos de recursos, pode especificar o âmbito para avaliar a resourceGroup função. Para obter mais informações, veja Implementar recursos do Azure em mais do que uma subscrição ou grupo de recursos.

Exemplo de grupo de recursos

O exemplo seguinte devolve as propriedades do grupo de recursos.

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

O exemplo anterior devolve um objeto no seguinte formato:

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

subscrição

subscription()

Devolve detalhes sobre a subscrição da implementação atual.

No Bicep, utilize a função de âmbito da subscrição .

Valor devolvido

A função devolve o seguinte formato:

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

Observações

Ao utilizar modelos aninhados para implementar em várias subscrições, pode especificar o âmbito para avaliar a função de subscrição. Para obter mais informações, veja Implementar recursos do Azure em mais do que uma subscrição ou grupo de recursos.

Exemplo de subscrição

O exemplo seguinte mostra a função de subscrição chamada na secção saídas.

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

inquilino

tenant()

Devolve o inquilino do utilizador.

No Bicep, utilize a função de âmbito do inquilino .

Observações

tenant() pode ser utilizado com qualquer âmbito de implementação. Devolve sempre o inquilino atual. Utilize esta função para obter propriedades para o inquilino atual.

Ao definir o âmbito de um modelo ligado ou recurso de extensão, utilize a sintaxe: "scope": "/".

Valor devolvido

Um objeto com propriedades sobre o inquilino atual.

Exemplo de inquilino

O exemplo seguinte devolve as propriedades de um inquilino.

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

É devolvido:

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

Passos seguintes