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)

Retourneert een object 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. De huidige beheergroep voor de implementatiebewerking wordt geretourneerd. Gebruik dit 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 bij het ophalen van het bereikobject. Als u de eigenschappen voor een beheergroep wilt ophalen, kunt u de beheergroep-id niet doorgeven.

Parameters

Parameter Vereist Type Description
Id No 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 resourcetype van een module of extensie. 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 geretourneerd voor de huidige beheergroep.

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 wordt 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)

Een object retourneren dat wordt gebruikt om het bereik in te stellen op een resourcegroep.

Naamruimte: az.

Opmerkingen

De functie resourceGroup heeft twee verschillende toepassingen. Eén gebruik is voor het instellen van het bereik voor een resourcetype van een module of extensie. 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, retourneert deze een bereikobject.

resourceGroup() kan worden gebruikt voor het instellen van het bereik of 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 Beschrijving
resourceGroupName No tekenreeks De naam van de resourcegroep die u wilt implementeren. Als u geen waarde opgeeft, wordt de huidige resourcegroep geretourneerd.
subscriptionId No tekenreeks De unieke id voor het abonnement om naar te implementeren. Als u geen waarde opgeeft, wordt het huidige abonnement geretourneerd.

Retourwaarde

Bij gebruik 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 beherende resource.

Voorbeeld van resourcegroep

In het volgende voorbeeld wordt een module afgestemd 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()

Er wordt een object in de volgende indeling geretourneerd:

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

De functie resourceGroup wordt vaak gebruikt om resources te maken 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 van resourcegroep toepassen voor meer informatie.

abonnement

subscription()

Retourneert details over het abonnement voor de huidige implementatie.

subscription(subscriptionId)

Retourneert een object 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 resourcetype van een module of extensie. Het andere gebruik is om details over het huidige abonnement op te halen. De plaatsing van de functie bepaalt het gebruik ervan. Wanneer deze wordt gebruikt om de scope eigenschap in te stellen, retourneert deze een bereikobject.

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

subscription() kan worden gebruikt om het bereik in te stellen of om details over het abonnement op te halen.

Parameters

Parameter Vereist Type Description
subscriptionId No tekenreeks De unieke id voor het abonnement om naar te implementeren. Als u geen waarde opgeeft, wordt het huidige abonnement geretourneerd.

Retourwaarde

Bij gebruik 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 afgestemd op het abonnement.

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

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

output subscriptionOutput object = subscription()

tenant

tenant()

Retourneert een object dat wordt gebruikt voor het instellen van het bereik voor de tenant.

of

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 resourcetype van een module of extensie. 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 door te geven als parameter, 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: