Delen via


Bereikfuncties voor Bicep

In dit artikel worden de Bicep-functies beschreven voor het ophalen van bereikwaarden.

managementGroup

managementGroup()

Retourneert een object met eigenschappen van de beheergroep in de huidige implementatie.

managementGroup(identifier)

Hiermee wordt een object geretourneerd dat wordt gebruikt voor het instellen van het bereik op een beheergroep.

Naamruimte: az.

Opmerkingen

managementGroup()kan alleen worden gebruikt voor implementaties van een beheergroep. Hiermee wordt de huidige beheergroep voor de implementatiebewerking geretourneerd. Gebruik deze functie bij het ophalen van een bereikobject of het ophalen van eigenschappen voor de huidige beheergroep.

managementGroup(identifier) kan worden gebruikt voor elk implementatiebereik, maar alleen wanneer het bereikobject wordt opgehaald. Als u de eigenschappen voor een beheergroep wilt ophalen, kunt u de beheergroep-id niet doorgeven.

Parameters

Parameter Vereist Type Description
id Nee tekenreeks De unieke id voor de beheergroep die moet worden geïmplementeerd. Gebruik de weergavenaam niet voor de beheergroep. Als u geen waarde opgeeft, wordt de huidige beheergroep geretourneerd.

Retourwaarde

Een object dat wordt gebruikt voor het instellen van de scope eigenschap voor een module of extensieresourcetype. Of een object met de eigenschappen voor de huidige beheergroep.

Voorbeeld van beheergroep

In het volgende voorbeeld wordt het bereik voor een module ingesteld op een beheergroep.

param managementGroupIdentifier string

module  'mgModule.bicep' = {
  name: 'deployToMG'
  scope: managementGroup(managementGroupIdentifier)
}

In het volgende voorbeeld worden eigenschappen voor de huidige beheergroep geretourneerd.

targetScope = 'managementGroup'

var mgInfo = managementGroup()

output mgResult object = mgInfo

Het volgende wordt geretourneerd:

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

In het volgende voorbeeld wordt een nieuwe beheergroep gemaakt en deze functie gebruikt om de bovenliggende beheergroep in te stellen.

targetScope = 'managementGroup'

param mgName string = 'mg-${uniqueString(newGuid())}'

resource newMG 'Microsoft.Management/managementGroups@2020-05-01' = {
  scope: tenant()
  name: mgName
  properties: {
    details: {
      parent: {
        id: managementGroup().id
      }
    }
  }
}

output newManagementGroup string = mgName

resourceGroup

resourceGroup()

Retourneert een object dat de huidige resourcegroep vertegenwoordigt.

resourceGroup(resourceGroupName)

And

resourceGroup(subscriptionId, resourceGroupName)

Hiermee wordt een object geretourneerd dat wordt gebruikt voor het instellen van het bereik op een resourcegroep.

Naamruimte: az.

Opmerkingen

De resourceGroup-functie heeft twee verschillende toepassingen. Eén gebruik is voor het instellen van het bereik voor een module of extensieresourcetype. Het andere gebruik is voor het ophalen van details over de huidige resourcegroep. De plaatsing van de functie bepaalt het gebruik ervan. Wanneer deze wordt gebruikt om de scope eigenschap in te stellen, wordt een bereikobject geretourneerd.

resourceGroup() kan worden gebruikt voor het instellen van het bereik of voor het ophalen van details over de resourcegroep.

resourceGroup(resourceGroupName) en resourceGroup(subscriptionId, resourceGroupName) kan alleen worden gebruikt voor het instellen van het bereik.

Parameters

Parameter Vereist Type Description
resourceGroupName Nee tekenreeks De naam van de resourcegroep die moet worden geïmplementeerd. Als u geen waarde opgeeft, wordt de huidige resourcegroep geretourneerd.
subscriptionId Nee tekenreeks De unieke id voor het abonnement waarnaar moet worden geïmplementeerd. Als u geen waarde opgeeft, wordt het huidige abonnement geretourneerd.

Retourwaarde

Wanneer deze wordt gebruikt voor het instellen van het bereik, retourneert de functie een object dat geldig is voor de scope eigenschap van een module of extensieresourcetype.

Wanneer de functie wordt gebruikt voor het ophalen van details over de resourcegroep, retourneert de functie de volgende indeling:

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

De eigenschap managedBy wordt alleen geretourneerd voor resourcegroepen die resources bevatten die worden beheerd door een andere service. Voor beheerde toepassingen, Databricks en AKS is de waarde van de eigenschap de resource-id van de beheerresource.

Voorbeeld van resourcegroep

In het volgende voorbeeld wordt een module gericht op een resourcegroep.

param resourceGroupName string

module exampleModule 'rgModule.bicep' = {
  name: 'exampleModule'
  scope: resourceGroup(resourceGroupName)
}

In het volgende voorbeeld worden de eigenschappen van de resourcegroep geretourneerd.

output resourceGroupOutput object = resourceGroup()

Het retourneert een object in de volgende indeling:

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

Een veelvoorkomend gebruik van de functie resourceGroup is het maken van resources op dezelfde locatie als de resourcegroep. In het volgende voorbeeld wordt de locatie van de resourcegroep gebruikt voor een standaardparameterwaarde.

param location string = resourceGroup().location

U kunt ook de functie resourceGroup gebruiken om tags uit de resourcegroep toe te passen op een resource. Zie Tags toepassen uit de resourcegroep voor meer informatie.

abonnement

subscription()

Retourneert details over het abonnement voor de huidige implementatie.

subscription(subscriptionId)

Hiermee wordt een object geretourneerd dat wordt gebruikt voor het instellen van het bereik op een abonnement.

Naamruimte: az.

Opmerkingen

De abonnementsfunctie heeft twee verschillende toepassingen. Eén gebruik is voor het instellen van het bereik voor een module of extensieresourcetype. Het andere gebruik is bedoeld voor het ophalen van details over het huidige abonnement. De plaatsing van de functie bepaalt het gebruik ervan. Wanneer deze wordt gebruikt om de scope eigenschap in te stellen, wordt een bereikobject geretourneerd.

subscription(subscriptionId) kan alleen worden gebruikt voor het instellen van het bereik.

subscription() kan worden gebruikt voor het instellen van het bereik of om details over het abonnement op te halen.

Parameters

Parameter Vereist Type Description
subscriptionId Nee tekenreeks De unieke id voor het abonnement waarnaar moet worden geïmplementeerd. Als u geen waarde opgeeft, wordt het huidige abonnement geretourneerd.

Retourwaarde

Wanneer deze wordt gebruikt voor het instellen van het bereik, retourneert de functie een object dat geldig is voor de scope eigenschap van een module of extensieresourcetype.

Wanneer de functie wordt gebruikt voor het ophalen van details over het abonnement, retourneert de functie de volgende indeling:

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

Voorbeeld van abonnement

In het volgende voorbeeld wordt een module gericht op het abonnement.

module exampleModule 'subModule.bicep' = {
  name: 'deployToSub'
  scope: subscription()
}

In het volgende voorbeeld worden de details voor een abonnement geretourneerd.

output subscriptionOutput object = subscription()

AD-tenant

tenant()

Hiermee wordt een object geretourneerd dat wordt gebruikt voor het instellen van het bereik op de tenant.

Or

Retourneert de tenant van de gebruiker.

Naamruimte: az.

Opmerkingen

tenant() kan worden gebruikt met elk implementatiebereik. De huidige tenant wordt altijd geretourneerd. U kunt deze functie gebruiken om het bereik voor een resource in te stellen of om eigenschappen voor de huidige tenant op te halen.

Retourwaarde

Een object dat wordt gebruikt voor het instellen van de scope eigenschap voor een module of extensieresourcetype. Of een object met eigenschappen over de huidige tenant.

Voorbeeld van tenant

In het volgende voorbeeld ziet u een module die is geïmplementeerd in de tenant.

module exampleModule 'tenantModule.bicep' = {
  name: 'deployToTenant'
  scope: tenant()
}

In het volgende voorbeeld worden de eigenschappen voor een tenant geretourneerd.

var tenantInfo = tenant()

output tenantResult object = tenantInfo

Het volgende wordt geretourneerd:

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

Voor sommige resources is het instellen van de tenant-id voor een eigenschap vereist. In plaats van de tenant-id als parameter door te geven, kunt u deze ophalen met de tenantfunctie.

resource kv 'Microsoft.KeyVault/vaults@2021-06-01-preview' = {
  name: 'examplekeyvault'
  location: 'westus'
  properties: {
    tenantId: tenant().tenantId
    ...
  }
}

Volgende stappen

Zie voor meer informatie over implementatiebereiken: