Funções de escopo para modelos ARM
O Resource Manager fornece as seguintes funções para obter valores de escopo de implantação em seu modelo do Azure Resource Manager (modelo ARM):
Para obter valores de parâmetros, variáveis ou da implantação atual, consulte Funções de valor de implantação.
Gorjeta
Recomendamos o Bicep porque ele oferece os mesmos recursos que os modelos ARM e a sintaxe é mais fácil de usar. Para saber mais, consulte Funções de escopo .
gestãoGrupo
managementGroup()
Retorna um objeto com propriedades do grupo de gerenciamento na implantação atual.
No Bicep, use a função de escopo managementGroup .
Observações
managementGroup()
só pode ser usado em implantações de grupo de gerenciamento. Ele retorna o grupo de gerenciamento atual para a operação de implantação. Use para obter propriedades para o grupo de gerenciamento atual.
Valor devolvido
Um objeto com as propriedades do grupo de gerenciamento atual.
Exemplo de grupo de gerenciamento
O exemplo a seguir retorna propriedades para o grupo de gerenciamento 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": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"type": "/providers/Microsoft.Management/managementGroups"
}
}
O próximo exemplo cria um novo grupo de gerenciamento e usa essa função para definir o grupo de gerenciamento pai.
{
"$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()
Retorna um objeto que representa o grupo de recursos atual.
No Bicep, use a função de escopo resourceGroup .
Valor devolvido
O objeto retornado 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 é retornada somente para grupos de recursos que contêm recursos gerenciados por outro serviço. Para Aplicativos Gerenciados, Databricks e AKS, o valor da propriedade é a ID do recurso de gerenciamento.
Observações
A resourceGroup()
função não pode ser usada em um modelo implantado no nível de assinatura. Ele só pode ser usado em modelos que são implantados em um grupo de recursos. Você pode usar a resourceGroup()
função em um modelo vinculado ou aninhado (com escopo interno) destinado a um grupo de recursos, mesmo quando o modelo pai é implantado na assinatura. Nesse cenário, o modelo vinculado ou aninhado é implantado no nível do grupo de recursos. Para obter mais informações sobre como direcionar um grupo de recursos em uma implantação em nível de assinatura, consulte Implantar recursos do Azure em mais de uma assinatura ou grupo de recursos.
Um uso comum da função resourceGroup é criar recursos no mesmo local que o grupo de recursos. O exemplo a seguir usa o local do grupo de recursos para um valor de parâmetro padrão.
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
}
Você também pode usar a resourceGroup
função para aplicar tags do grupo de recursos a um recurso. Para obter mais informações, consulte Aplicar tags do grupo de recursos.
Ao usar modelos aninhados para implantar em vários grupos de recursos, você pode especificar o escopo para avaliar a resourceGroup
função. Para obter mais informações, consulte Implantar recursos do Azure em mais de uma assinatura ou grupo de recursos.
Exemplo de grupo de recursos
O exemplo a seguir retorna 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 retorna 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()
Retorna detalhes sobre a assinatura para a implantação atual.
No Bicep, use a função de escopo de assinatura .
Valor devolvido
A função retorna o seguinte formato:
{
"id": "/subscriptions/{subscription-id}",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}",
"displayName": "{name-of-subscription}"
}
Observações
Ao usar modelos aninhados para implantar em várias assinaturas, você pode especificar o escopo para avaliar a função de assinatura. Para obter mais informações, consulte Implantar recursos do Azure em mais de uma assinatura ou grupo de recursos.
Exemplo de subscrição
O exemplo a seguir mostra a função de assinatura chamada na seção outputs.
{
"$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()
Retorna o locatário do usuário.
No Bicep, use a função de escopo do locatário .
Observações
tenant()
pode ser usado com qualquer escopo de implantação. Ele sempre retorna o locatário atual. Use essa função para obter propriedades para o locatário atual.
Ao definir o escopo de um modelo vinculado ou recurso de extensão, use a sintaxe: "scope": "/"
.
Valor devolvido
Um objeto com propriedades sobre o locatário atual.
Exemplo de locatário
O exemplo a seguir retorna as propriedades de um locatário.
{
"$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": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
Próximos passos
- Para obter uma descrição das seções em um modelo ARM, consulte Compreender a estrutura e a sintaxe dos modelos ARM.
- Para mesclar vários modelos, consulte Usando modelos vinculados e aninhados ao implantar recursos do Azure.
- Para iterar um número especificado de vezes ao criar um tipo de recurso, consulte Iteração de recurso em modelos ARM.
- Para ver como implantar o modelo que você criou, consulte Implantar recursos com modelos ARM e Azure PowerShell.