Funzioni di ambito per Bicep
Questo articolo descrive le funzioni Bicep per ottenere valori di ambito.
managementGroup
managementGroup()
Restituisce un oggetto con proprietà del gruppo di gestione nella distribuzione corrente.
managementGroup(identifier)
Restituisce un oggetto utilizzato per impostare l'ambito su un gruppo di gestione.
Spazio dei nomi: az.
Osservazioni:
managementGroup()
può essere usato solo nelle distribuzioni di un gruppo di gestione. Restituisce il gruppo di gestione corrente per l'operazione di distribuzione. Utilizzare quando si ottiene un oggetto ambito o si ottengono proprietà per il gruppo di gestione corrente.
managementGroup(identifier)
può essere usato per qualsiasi ambito di distribuzione, ma solo quando si ottiene l'oggetto ambito. Per recuperare le proprietà per un gruppo di gestione, non è possibile passare l'identificatore del gruppo di gestione.
Parametri
Parametro | Richiesto | Type | Descrizione |
---|---|---|---|
identificatore | No | string | Identificatore univoco per il gruppo di gestione in cui eseguire la distribuzione. Non usare il nome visualizzato per il gruppo di gestione. Se non si specifica un valore, viene restituito il gruppo di gestione corrente. |
Valore restituito
Oggetto utilizzato per impostare la proprietà scope
su un modulo o un tipo di risorsa di estensione. O un oggetto con le proprietà per il gruppo di gestione corrente.
Esempio di gruppo di gestione
Nell'esempio seguente l'ambito di un modulo viene impostato su un gruppo di gestione.
param managementGroupIdentifier string
module 'mgModule.bicep' = {
name: 'deployToMG'
scope: managementGroup(managementGroupIdentifier)
}
Nell'esempio successivo vengono restituite proprietà per il gruppo di gestione corrente.
targetScope = 'managementGroup'
var mgInfo = managementGroup()
output mgResult object = mgInfo
Il risultato è il seguente:
"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"
}
}
Nell'esempio seguente viene creato un nuovo gruppo di gestione e viene usata questa funzione per impostare il gruppo di gestione padre.
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()
Restituisce un oggetto che rappresenta il gruppo di risorse corrente.
resourceGroup(resourceGroupName)
And
resourceGroup(subscriptionId, resourceGroupName)
Restituisce un oggetto utilizzato per impostare l'ambito su un gruppo di risorse.
Spazio dei nomi: az.
Osservazioni:
La funzione resourceGroup ha due utilizzi distinti. Un utilizzo consiste nell'impostare l'ambito in un modulo o in un tipo di risorsa di estensione. L'altro utilizzo consiste nell’ottenere informazioni dettagliate sul gruppo di risorse corrente. La posizione della funzione determina l'utilizzo. Quando utilizzato per impostare la proprietà scope
, restituisce un oggetto ambito.
resourceGroup()
può essere usato per impostare l'ambito o ottenere informazioni dettagliate sul gruppo di risorse.
resourceGroup(resourceGroupName)
e resourceGroup(subscriptionId, resourceGroupName)
possono essere usati solo per impostare l'ambito.
Parametri
Parametro | Richiesto | Type | Descrizione |
---|---|---|---|
resourceGroupName | No | string | Nome del gruppo di risorse in cui eseguire la distribuzione. Se non si specifica un valore, viene restituito il gruppo di risorse corrente. |
subscriptionId | No | string | Identificatore univoco della sottoscrizione in cui eseguire la distribuzione. Se non si specifica un valore, viene restituita la sottoscrizione corrente. |
Valore restituito
Se utilizzata per l'impostazione dell'ambito, la funzione restituisce un oggetto valido per la proprietà scope
in un modulo o in un tipo di risorsa di estensione.
Se usato per ottenere informazioni dettagliate sul gruppo di risorse, la funzione restituisce il formato seguente:
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"name": "{resourceGroupName}",
"type":"Microsoft.Resources/resourceGroups",
"location": "{resourceGroupLocation}",
"managedBy": "{identifier-of-managing-resource}",
"tags": {
},
"properties": {
"provisioningState": "{status}"
}
}
La proprietà managedBy viene restituita solo per gruppi di risorse che contengono risorse gestite da un altro servizio. Per le applicazioni gestite, Databricks e il servizio Azure Kubernetes, il valore della proprietà è l'ID della risorsa di gestione.
Esempio di gruppo di risorse
L'esempio seguente definisce l'ambito di un modulo in un gruppo di risorse.
param resourceGroupName string
module exampleModule 'rgModule.bicep' = {
name: 'exampleModule'
scope: resourceGroup(resourceGroupName)
}
L’esempio successivo restituisce le proprietà del gruppo di risorse.
output resourceGroupOutput object = resourceGroup()
Restituisce un oggetto nel formato seguente:
{
"id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
"name": "examplegroup",
"type":"Microsoft.Resources/resourceGroups",
"location": "southcentralus",
"properties": {
"provisioningState": "Succeeded"
}
}
Un utilizzo comune della funzione resourceGroup consiste nel creare risorse nello stesso percorso del gruppo di risorse. L'esempio seguente usa la posizione del gruppo di risorse per un valore di parametro predefinito.
param location string = resourceGroup().location
È inoltre possibile usare la funzione resourceGroup per applicare tag a una risorsa dal gruppo di risorse. Per altre informazioni, vedere Applicare tag da un gruppo di risorse.
sottoscrizione
subscription()
Restituisce i dettagli sulla sottoscrizione per la distribuzione corrente.
subscription(subscriptionId)
Restituisce un oggetto utilizzato per impostare l'ambito su una sottoscrizione.
Spazio dei nomi: az.
Osservazioni:
La funzione di sottoscrizione ha due usi distinti. Un utilizzo consiste nell'impostare l'ambito in un modulo o in un tipo di risorsa di estensione. L'altro utilizzo consiste nell’ottenere informazioni dettagliate sulla sottoscrizione corrente. La posizione della funzione determina l'utilizzo. Quando utilizzato per impostare la proprietà scope
, restituisce un oggetto ambito.
subscription(subscriptionId)
può essere usato solo per l'impostazione dell'ambito.
subscription()
può essere usato per impostare l'ambito o ottenere informazioni dettagliate sulla sottoscrizione.
Parametri
Parametro | Richiesto | Type | Descrizione |
---|---|---|---|
subscriptionId | No | string | Identificatore univoco della sottoscrizione in cui eseguire la distribuzione. Se non si specifica un valore, viene restituita la sottoscrizione corrente. |
Valore restituito
Se utilizzata per l'impostazione dell'ambito, la funzione restituisce un oggetto valido per la proprietà scope
in un modulo o in un tipo di risorsa di estensione.
Se usata per ottenere informazioni dettagliate sulla sottoscrizione, la funzione restituisce il formato seguente:
{
"id": "/subscriptions/{subscription-id}",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}",
"displayName": "{name-of-subscription}"
}
Esempio della funzione subscription
L'esempio seguente definisce l'ambito di un modulo per la sottoscrizione.
module exampleModule 'subModule.bicep' = {
name: 'deployToSub'
scope: subscription()
}
Nell'esempio successivo vengono restituiti i dettagli di una sottoscrizione.
output subscriptionOutput object = subscription()
tenant
tenant()
Restituisce un oggetto utilizzato per impostare l'ambito sul tenant.
O
Restituisce il tenant dell'utente.
Spazio dei nomi: az.
Osservazioni:
tenant()
può essere usato con qualsiasi ambito di distribuzione. Restituisce sempre il tenant corrente. È possibile usare questa funzione per impostare l'ambito di una risorsa o per ottenere le proprietà per il tenant corrente.
Valore restituito
Oggetto utilizzato per impostare la proprietà scope
su un modulo o un tipo di risorsa di estensione. O un oggetto con proprietà relative al tenant corrente.
Esempio di tenant
L'esempio seguente mostra un modulo distribuito nel tenant.
module exampleModule 'tenantModule.bicep' = {
name: 'deployToTenant'
scope: tenant()
}
Nell'esempio successivo vengono restituite le proprietà per un tenant.
var tenantInfo = tenant()
output tenantResult object = tenantInfo
Il risultato è il seguente:
"tenantResult": {
"type": "Object",
"value": {
"countryCode": "US",
"displayName": "Contoso",
"id": "/tenants/00000000-0000-0000-0000-000000000000",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
Alcune risorse richiedono l'impostazione dell'ID tenant per una proprietà. Anziché passare l'ID tenant come parametro, è possibile recuperarlo con la funzione tenant.
resource kv 'Microsoft.KeyVault/vaults@2023-07-01' = {
name: 'examplekeyvault'
location: 'westus'
properties: {
tenantId: tenant().tenantId
...
}
}
Passaggi successivi
Per ulteriori informazioni sugli ambiti di distribuzione, vedere: