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": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"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@2023-04-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": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
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@2023-07-01' = {
name: 'examplekeyvault'
location: 'westus'
properties: {
tenantId: tenant().tenantId
...
}
}
Volgende stappen
Zie voor meer informatie over implementatiebereiken: