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: