Fonctions d’étendue pour Bicep
Cet article décrit les fonctions Bicep pour l’obtention des valeurs d’étendue.
managementGroup
managementGroup()
Retourne un objet avec les propriétés du groupe d’administration dans le déploiement actuel.
managementGroup(identifier)
Retourne un objet utilisé pour définir l’étendue à un groupe d’administration.
Espace de noms : az.
Remarques
managementGroup()
ne peut être utilisée que sur des déploiements de groupe d’administration. Elle retourne le groupe d’administration actuel pour l’opération de déploiement. À utiliser pour obtenir un objet d’étendue ou des propriétés pour le groupe d’administration actuel.
managementGroup(identifier)
peut être utilisé pour n’importe quelle étendue de déploiement, mais uniquement pour obtenir l’objet d’étendue. Pour récupérer les propriétés d’un groupe d’administration, vous ne pouvez pas fournir l’identificateur du groupe d’administration.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
identificateur | Non | string | Identificateur unique du groupe d’administration sur lequel effectuer le déploiement. N’utilisez pas le nom complet du groupe d’administration. Si vous ne fournissez pas de valeur, le groupe d’administration actuel est retourné. |
Valeur de retour
Objet utilisé pour définir la propriété scope
sur un type de ressource de module ou d’extension. Ou un objet avec les propriétés du groupe d’administration actuel.
Exemple de groupe d’administration
L’exemple suivant définit l’étendue d’un module sur un groupe d’administration.
param managementGroupIdentifier string
module 'mgModule.bicep' = {
name: 'deployToMG'
scope: managementGroup(managementGroupIdentifier)
}
L’exemple suivant renvoie les propriétés du groupe d’administration actuel.
targetScope = 'managementGroup'
var mgInfo = managementGroup()
output mgResult object = mgInfo
Cela renvoie :
"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"
}
}
L’exemple suivant crée un nouveau groupe d’administration et utilise cette fonction pour définir le groupe d’administration parent.
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()
Renvoie un objet qui représente le groupe de ressources actuel.
resourceGroup(resourceGroupName)
And
resourceGroup(subscriptionId, resourceGroupName)
Retourne un objet utilisé pour définir l’étendue à un groupe de ressources.
Espace de noms : az.
Remarques
La fonction resourceGroup a deux utilisations distinctes. Une utilisation permet de définir l’étendue sur un type de ressource de module ou d’extension. L’autre utilisation consiste à obtenir des détails sur le groupe de ressources actuel. Le positionnement de la fonction détermine son utilisation. Lorsqu’elle est utilisée pour définir la propriété scope
, elle retourne un objet d’étendue.
resourceGroup()
peut être utilisé pour définir l’étendue ou obtenir des détails sur le groupe de ressources.
resourceGroup(resourceGroupName)
et resourceGroup(subscriptionId, resourceGroupName)
ne peuvent être utilisés que pour définir l’étendue.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
resourceGroupName | Non | string | Nom du groupe de ressources sur lequel effectuer le déploiement. Si vous ne fournissez pas de valeur, le groupe de ressources actuel est retourné. |
subscriptionId | Non | string | Identificateur unique de l’abonnement sur lequel effectuer le déploiement. Si vous ne fournissez pas de valeur, l’abonnement actuel est retourné. |
Valeur de retour
Lorsqu’elle est utilisée pour définir l’étendue, la fonction retourne un objet qui est valide pour la propriété scope
sur un type de ressource de module ou d’extension.
Lorsqu’elle est utilisée pour obtenir des détails sur le groupe de ressources, la fonction retourne le format suivant :
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"name": "{resourceGroupName}",
"type":"Microsoft.Resources/resourceGroups",
"location": "{resourceGroupLocation}",
"managedBy": "{identifier-of-managing-resource}",
"tags": {
},
"properties": {
"provisioningState": "{status}"
}
}
La propriété ManagedBy est retournée uniquement pour les groupes de ressources qui contiennent des ressources gérées par un autre service. Pour Managed Applications, Databricks et AKS, la valeur de la propriété est l’ID de ressource de la ressource de gestion.
Exemple de groupe de ressources
L’exemple suivant définit l’étendue d’un module à un groupe de ressources.
param resourceGroupName string
module exampleModule 'rgModule.bicep' = {
name: 'exampleModule'
scope: resourceGroup(resourceGroupName)
}
L’exemple suivant retourne les propriétés du groupe de ressources.
output resourceGroupOutput object = resourceGroup()
Il retourne un objet au format suivant :
{
"id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
"name": "examplegroup",
"type":"Microsoft.Resources/resourceGroups",
"location": "southcentralus",
"properties": {
"provisioningState": "Succeeded"
}
}
Une utilisation courante de la fonction resourceGroup consiste à créer des ressources dans le même emplacement que le groupe de ressources. L’exemple suivant utilise l’emplacement du groupe de ressources pour une valeur de paramètre par défaut.
param location string = resourceGroup().location
Vous pouvez également utiliser la fonction resourceGroup pour appliquer des balises du groupe de ressources à une ressource. Pour plus d’informations, voir Appliquer les balises d’un groupe de ressources.
subscription
subscription()
Retourne des détails concernant l’abonnement pour le déploiement actuel.
subscription(subscriptionId)
Retourne un objet utilisé pour définir l’étendue à un abonnement.
Espace de noms : az.
Remarques
La fonction subscription a deux utilisations distinctes. Une utilisation permet de définir l’étendue sur un type de ressource de module ou d’extension. L’autre utilisation consiste à obtenir des détails sur l’abonnement actuel. Le positionnement de la fonction détermine son utilisation. Lorsqu’elle est utilisée pour définir la propriété scope
, elle retourne un objet d’étendue.
subscription(subscriptionId)
ne peut être utilisé que pour définir l’étendue.
subscription()
peut être utilisé pour définir l’étendue ou obtenir les détails sur l’abonnement.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
subscriptionId | Non | string | Identificateur unique de l’abonnement sur lequel effectuer le déploiement. Si vous ne fournissez pas de valeur, l’abonnement actuel est retourné. |
Valeur de retour
Lorsqu’elle est utilisée pour définir l’étendue, la fonction retourne un objet qui est valide pour la propriété scope
sur un type de ressource de module ou d’extension.
Lorsqu’elle est utilisée pour obtenir des détails sur l’abonnement, la fonction retourne le format suivant :
{
"id": "/subscriptions/{subscription-id}",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}",
"displayName": "{name-of-subscription}"
}
Exemple d’abonnement
L’exemple suivant définit l’étendue d’un module à l’abonnement.
module exampleModule 'subModule.bicep' = {
name: 'deployToSub'
scope: subscription()
}
L’exemple suivant retourne les détails d’un abonnement.
output subscriptionOutput object = subscription()
tenant
tenant()
Retourne un objet utilisé pour définir l’étendue au locataire.
ou
Retourne le locataire de l’utilisateur.
Espace de noms : az.
Remarques
tenant()
peut être utilisée pour toute étendue de déploiement. Elle retourne toujours le locataire actuel. Vous pouvez utiliser cette fonction pour définir l’étendue d’une ressource ou pour obtenir les propriétés du locataire actuel.
Valeur de retour
Objet utilisé pour définir la propriété scope
sur un type de ressource de module ou d’extension. Ou un objet avec les propriétés du locataire actuel.
Exemple de locataire
L’exemple suivant illustre un module déployé sur le locataire.
module exampleModule 'tenantModule.bicep' = {
name: 'deployToTenant'
scope: tenant()
}
L’exemple suivant renvoie les propriétés d’un locataire.
var tenantInfo = tenant()
output tenantResult object = tenantInfo
Cela renvoie :
"tenantResult": {
"type": "Object",
"value": {
"countryCode": "US",
"displayName": "Contoso",
"id": "/tenants/00000000-0000-0000-0000-000000000000",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
Certaines ressources nécessitent la définition de l’ID de locataire pour une propriété. Plutôt que de fournir l’ID de locataire en tant que paramètre, vous pouvez le récupérer avec la fonction tenant.
resource kv 'Microsoft.KeyVault/vaults@2023-07-01' = {
name: 'examplekeyvault'
location: 'westus'
properties: {
tenantId: tenant().tenantId
...
}
}
Étapes suivantes
Pour en savoir plus sur les étendues de déploiement, consultez :