Compartir a través de


Funciones de ámbito para plantillas de ARM

Azure Resource Manager proporciona las siguientes funciones para obtener valores de ámbito de implementación en la plantilla de Azure Resource Manager (plantilla de ARM):

Para obtener valores de parámetros, variables o la implementación actual, consulte Funciones de valor de implementación.

Sugerencia

Se recomienda Bicep , ya que ofrece las mismas funcionalidades que las plantillas de ARM y la sintaxis es más fácil de usar. Para más información, consulte scope funciones.

managementGroup

managementGroup()

Devuelve un objeto con propiedades del grupo de administración en la implementación actual.

En Bicep, use la managementGroup función scope.

Observaciones

managementGroup() solo se puede usar en implementaciones de grupo de administración. Devuelve el grupo de administración actual para la operación de implementación. Úselo para obtener las propiedades del grupo de administración actual.

Valor devuelto

Objeto con las propiedades del grupo de administración actual.

Ejemplo de grupo de administración

En el ejemplo siguiente se devuelven propiedades para el grupo de administración actual:

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

Devuelve:

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

En el ejemplo siguiente se crea un nuevo grupo de administración y se usa esta función para establecer el grupo de administración primario:

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

resourceGroup

resourceGroup()

Devuelve un objeto que representa el grupo de recursos actual.

En Bicep, use la resourceGroup función scope.

Valor devuelto

El objeto devuelto tiene el formato siguiente:

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

La propiedad managedBy solo se devuelve para los grupos de recursos que contienen recursos administrados por otro servicio. Para Aplicaciones administradas, Databricks y AKS, el valor de la propiedad es el identificador de recurso del recurso de administración.

Observaciones

La resourceGroup() función no se puede usar en una plantilla implementada en el nivel de suscripción. Solo se puede usar en plantillas que se implementan en un grupo de recursos. Puede usar la resourceGroup() función en una plantilla vinculada o anidada (con ámbito interno) que tenga como destino un grupo de recursos, incluso cuando la plantilla primaria se implemente en la suscripción. En ese escenario, la plantilla vinculada o anidada se implementa en el nivel de grupo de recursos. Para más información sobre el destino de un grupo de recursos en una implementación de nivel de suscripción, consulte Implementación de recursos de Azure en más de una suscripción o grupo de recursos.

Un uso común de la resourceGroup función es crear recursos en la misma ubicación que el grupo de recursos. En el ejemplo siguiente se usa la ubicación del grupo de recursos para un valor de parámetro predeterminado.

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

También puede usar la resourceGroup función para aplicar etiquetas del grupo de recursos a un recurso. Para obtener más información, consulte Aplicación de etiquetas del grupo de recursos.

Al usar plantillas anidadas para implementar en varios grupos de recursos, puede especificar el ámbito para evaluar la resourceGroup función. Para más información, consulte Implementación de recursos de Azure en más de una suscripción o grupo de recursos.

Ejemplo de grupo de recursos

En el ejemplo siguiente se devuelven las propiedades del 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()]"
    }
  }
}

En el ejemplo anterior se devuelve un objeto con el formato siguiente:

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

suscripción

subscription()

Devuelve detalles sobre la suscripción de la implementación actual.

En Bicep, use la subscription función scope.

Valor devuelto

La función devuelve el formato siguiente:

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

Observaciones

Al usar plantillas anidadas para implementar en varias suscripciones, puede especificar el ámbito para evaluar la subscription función. Para más información, consulte Implementación de recursos de Azure en más de una suscripción o grupo de recursos.

Ejemplo de suscripción

En el ejemplo siguiente se muestra la función a la subscription que se llama en la sección de salidas :

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

arrendatario

tenant()

Devuelve el inquilino del usuario.

En Bicep, use la tenant función scope.

Observaciones

tenant() se puede usar con cualquier ámbito de implementación. Siempre devuelve el inquilino actual. Use esta función para obtener las propiedades del inquilino actual.

Al establecer el ámbito de una plantilla vinculada o un recurso de extensión, use la sintaxis : "scope": "/".

Valor devuelto

Objeto con propiedades sobre el inquilino actual.

Ejemplo de inquilino

En el ejemplo siguiente se devuelven las propiedades de un 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')]"
    }
  }
}

Devuelve:

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

Pasos siguientes