Bereichsfunktionen für Bicep
Dieser Artikel beschreibt die Bicep-Funktionen zum Abrufen von Scope-Werten.
managementGroup
managementGroup()
Gibt ein Objekt mit Eigenschaften aus der Verwaltungsgruppe in der aktuellen Bereitstellung zurück.
managementGroup(identifier)
Gibt ein Objekt zurück, das zum Festlegen des Bereichs in einer Verwaltungsgruppe verwendet wird
Namespace: az.
Hinweise
managementGroup()
kann nur für Bereitstellungen von Verwaltungsgruppen verwendet werden. Gibt die aktuelle Verwaltungsgruppe für den Bereitstellungsvorgang zurück Verwenden, wenn Sie entweder ein Bereichsobjekt abrufen oder Eigenschaften für die aktuelle Verwaltungsgruppe abrufen.
managementGroup(identifier)
kann für jeden Bereitstellungsbereich verwendet werden, jedoch nur beim Abrufen des Bereichsobjekts. Um die Eigenschaften für eine Verwaltungsgruppe abzurufen, können Sie nicht den Verwaltungsgruppenbezeichner als Eingabe übergeben.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
Bezeichner | Nein | Zeichenfolge | Eindeutiger Bezeichner für die Verwaltungsgruppe zur Bereitstellung Verwenden Sie nicht den Anzeigenamen für die Verwaltungsgruppe. Wenn Sie keinen Wert angeben, wird die aktuelle Verwaltungsgruppe ausgegeben. |
Rückgabewert
Ein Objekt, das zum Festlegen der scope
-Eigenschaft bei einem Modul oder einem Erweiterungsressourcentyp verwendet wird Oder ein Objekt mit den Eigenschaften für die aktuelle Verwaltungsgruppe.
Beispiel für Verwaltungsgruppe
Das folgende Beispiel legt den Bereich für ein Modul für eine Verwaltungsgruppe fest.
param managementGroupIdentifier string
module 'mgModule.bicep' = {
name: 'deployToMG'
scope: managementGroup(managementGroupIdentifier)
}
Im nächsten Beispiel werden Eigenschaften für die aktuelle Verwaltungsgruppe zurückgegeben.
targetScope = 'managementGroup'
var mgInfo = managementGroup()
output mgResult object = mgInfo
Rückgabe:
"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"
}
}
Im nächsten Beispiel wird eine neue Verwaltungsgruppe erstellt und diese Funktion verwendet, um die übergeordnete Verwaltungsgruppe festzulegen.
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()
Gibt ein Objekt zurück, das die aktuelle Ressourcengruppe darstellt.
resourceGroup(resourceGroupName)
Und
resourceGroup(subscriptionId, resourceGroupName)
Gibt ein Objekt zurück, das zum Festlegen des Bereichs in einer Ressourcengruppe verwendet wird.
Namespace: az.
Hinweise
Die Funktion resourceGroup hat zwei spezielle Verwendungszwecke. Ein Zweck ist das Festlegen des Bereichs bei einem Modul oder einem Erweiterungsressourcentyp. Der andere Zweck ist das Abrufen von Details zur aktuellen Ressourcengruppe. Die Platzierung der Funktion bestimmt die Verwendung. Wenn die Funktion zum Festlegen der scope
-Eigenschaft verwendet wird, gibt sie ein Bereichsobjekt zurück.
resourceGroup()
kann entweder zum Festlegen des Bereichs oder zum Abrufen von Details zur Ressourcengruppe genutzt werden.
resourceGroup(resourceGroupName)
und resourceGroup(subscriptionId, resourceGroupName)
können nur zum Festlegen von Bereichen verwendet werden.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
resourceGroupName | Nein | Zeichenfolge | Name der Ressourcengruppe, in der Sie die Bereitstellung durchführen Wenn Sie keinen Wert angeben, wird die aktuelle Ressourcengruppe ausgegeben. |
subscriptionId | Nein | Zeichenfolge | Eindeutiger Bezeichner für das Abonnement, in dem Sie die Bereitstellung durchführen Wenn Sie keinen Wert angeben, wird das aktuelle Abonnement ausgegeben. |
Rückgabewert
Wenn die Funktion zum Festlegen des Bereichs verwendet wird, gibt sie ein Objekt zurück, das für die scope
-Eigenschaft bei einem Modul oder einem Erweiterungsressourcentyp gültig ist.
Beim Abrufen von Details zur Ressourcengruppe gibt die Funktion das folgende Format zurück:
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"name": "{resourceGroupName}",
"type":"Microsoft.Resources/resourceGroups",
"location": "{resourceGroupLocation}",
"managedBy": "{identifier-of-managing-resource}",
"tags": {
},
"properties": {
"provisioningState": "{status}"
}
}
Die Eigenschaft managedBy wird nur für Ressourcengruppen zurückgegeben, die von einem anderen Dienst verwaltete Ressourcen enthalten. Bei verwalteten Anwendungen, Databricks und AKS ist der Wert der Eigenschaft die Ressourcen-ID der Verwaltungsressource.
resourceGroup-Beispiel
Im folgenden Beispiel wird ein Modul per Bereich einer Ressourcengruppe zugewiesen.
param resourceGroupName string
module exampleModule 'rgModule.bicep' = {
name: 'exampleModule'
scope: resourceGroup(resourceGroupName)
}
Das nächste Beispiel gibt die Eigenschaften der Ressourcengruppe zurück.
output resourceGroupOutput object = resourceGroup()
Es gibt ein Objekt im folgenden Format zurück:
{
"id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
"name": "examplegroup",
"type":"Microsoft.Resources/resourceGroups",
"location": "southcentralus",
"properties": {
"provisioningState": "Succeeded"
}
}
Die Funktion „resourceGroup“ wird häufig verwendet, um Ressourcen am gleichen Speicherort wie die Ressourcengruppe zu erstellen. Das folgende Beispiel nutzt den Speicherort der Ressourcengruppe als einen Parameterstandardwert.
param location string = resourceGroup().location
Die Funktion „resourceGroup“ kann auch verwendet werden, um Tags aus einer Ressourcengruppe auf eine Ressource anzuwenden. Weitere Informationen finden Sie unter Apply tags from resource group (Anwenden von Tags aus einer Ressourcengruppe).
Abonnement
subscription()
Gibt Details zum Abonnement für die aktuelle Bereitstellung zurück.
subscription(subscriptionId)
Gibt ein Objekt zurück, das zum Festlegen des Bereichs in einem Abonnement verwendet wird
Namespace: az.
Hinweise
Die Funktion subscription hat zwei spezielle Verwendungszwecke. Ein Zweck ist das Festlegen des Bereichs bei einem Modul oder einem Erweiterungsressourcentyp. Der andere Zweck ist das Abrufen von Details zum aktuellen Abonnement. Die Platzierung der Funktion bestimmt die Verwendung. Wenn die Funktion zum Festlegen der scope
-Eigenschaft verwendet wird, gibt sie ein Bereichsobjekt zurück.
subscription(subscriptionId)
kann nur zum Festlegen von Bereichen verwendet werden.
subscription()
kann zum Festlegen des Bereichs oder zum Abrufen von Details zum Abonnement genutzt werden.
Parameter
Parameter | Erforderlich | Type | BESCHREIBUNG |
---|---|---|---|
subscriptionId | Nein | Zeichenfolge | Eindeutiger Bezeichner für das Abonnement, in dem Sie die Bereitstellung durchführen Wenn Sie keinen Wert angeben, wird das aktuelle Abonnement ausgegeben. |
Rückgabewert
Wenn die Funktion zum Festlegen des Bereichs verwendet wird, gibt sie ein Objekt zurück, das für die scope
-Eigenschaft bei einem Modul oder einem Erweiterungsressourcentyp gültig ist.
Beim Abrufen von Details zum Abonnement gibt die Funktion das folgende Format zurück:
{
"id": "/subscriptions/{subscription-id}",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}",
"displayName": "{name-of-subscription}"
}
subscription-Beispiel
Im folgenden Beispiel wird ein Modul per Bereich dem Abonnement zugewiesen.
module exampleModule 'subModule.bicep' = {
name: 'deployToSub'
scope: subscription()
}
Das nächste Beispiel gibt die Details für ein Abonnement zurück.
output subscriptionOutput object = subscription()
tenant
tenant()
Gibt ein Objekt zurück, das zum Festlegen des Bereichs für einen Mandanten verwendet wird
oder
Gibt den Mandanten des Benutzers zurück.
Namespace: az.
Hinweise
tenant()
kann für beliebige Bereitstellungsbereiche verwendet werden. Sie gibt immer den aktuellen Mandanten zurück. Sie können diese Funktion verwenden, um den Bereich für eine Ressource festzulegen oder Eigenschaften für den aktuellen Mandanten abzurufen.
Rückgabewert
Ein Objekt, das zum Festlegen der scope
-Eigenschaft bei einem Modul oder einem Erweiterungsressourcentyp verwendet wird Oder ein Objekt mit Eigenschaften über den aktuellen Mandanten.
Mandantenbeispiel
Das folgende Beispiel zeigt ein Modul, das im Mandanten bereitgestellt wird.
module exampleModule 'tenantModule.bicep' = {
name: 'deployToTenant'
scope: tenant()
}
Das nächste Beispiel gibt die Eigenschaften für einen Mandanten zurück.
var tenantInfo = tenant()
output tenantResult object = tenantInfo
Rückgabe:
"tenantResult": {
"type": "Object",
"value": {
"countryCode": "US",
"displayName": "Contoso",
"id": "/tenants/00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000"
}
}
Für einige Ressourcen muss die Mandanten-ID für eine Eigenschaft festgelegt werden. Anstatt die Mandanten-ID als Parameter zu übergeben, können Sie sie mit der Mandantenfunktion abrufen.
resource kv 'Microsoft.KeyVault/vaults@2023-07-01' = {
name: 'examplekeyvault'
location: 'westus'
properties: {
tenantId: tenant().tenantId
...
}
}
Nächste Schritte
Weitere Informationen zu Bereitstellungsbereichen finden Sie unter: