Omfångsfunktioner för Bicep

Den här artikeln beskriver Bicep-funktionerna för att hämta omfångsvärden.

managementGroup

managementGroup()

Returnerar ett objekt med egenskaper från hanteringsgruppen i den aktuella distributionen.

managementGroup(identifier)

Returnerar ett objekt som används för att ange omfånget till en hanteringsgrupp.

Namnområde: az.

Kommentarer

managementGroup() kan endast användas i en hanteringsgruppsdistribution. Den returnerar den aktuella hanteringsgruppen för distributionsåtgärden. Använd när du hämtar ett omfångsobjekt eller hämtar egenskaper för den aktuella hanteringsgruppen.

managementGroup(identifier) kan användas för alla distributionsomfång, men bara när du hämtar omfångsobjektet. Om du vill hämta egenskaperna för en hanteringsgrupp kan du inte skicka in hanteringsgruppidentifieraren.

Parametrar

Parameter Krävs Typ Beskrivning
Identifierare Nej sträng Den unika identifieraren för hanteringsgruppen som ska distribueras till. Använd inte visningsnamnet för hanteringsgruppen. Om du inte anger något värde returneras den aktuella hanteringsgruppen.

Returvärde

Ett objekt som används för att ange scope egenskapen för en modul eller en tilläggsresurstyp. Eller ett objekt med egenskaperna för den aktuella hanteringsgruppen.

Exempel på hanteringsgrupp

I följande exempel anges omfånget för en modul till en hanteringsgrupp.

param managementGroupIdentifier string

module  'mgModule.bicep' = {
  name: 'deployToMG'
  scope: managementGroup(managementGroupIdentifier)
}

I nästa exempel returneras egenskaper för den aktuella hanteringsgruppen.

targetScope = 'managementGroup'

var mgInfo = managementGroup()

output mgResult object = mgInfo

Då returneras:

"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"
  }
}

I nästa exempel skapas en ny hanteringsgrupp och den här funktionen används för att ange den överordnade hanteringsgruppen.

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()

Returnerar ett objekt som representerar den aktuella resursgruppen.

resourceGroup(resourceGroupName)

Och

resourceGroup(subscriptionId, resourceGroupName)

Returnera ett objekt som används för att ange omfånget till en resursgrupp.

Namnområde: az.

Kommentarer

Funktionen resourceGroup har två distinkta användningsområden. En användning är för att ange omfånget för en modul eller en tilläggsresurstyp. Den andra användningen är för att få information om den aktuella resursgruppen. Placeringen av funktionen avgör dess användning. När den används för att ange scope egenskapen returneras ett omfångsobjekt.

resourceGroup() kan användas för att ange omfång eller få information om resursgruppen.

resourceGroup(resourceGroupName) och resourceGroup(subscriptionId, resourceGroupName) kan endast användas för att ange omfång.

Parametrar

Parameter Krävs Typ Beskrivning
resourceGroupName Nej sträng Namnet på resursgruppen som ska distribueras till. Om du inte anger något värde returneras den aktuella resursgruppen.
subscriptionId Nej sträng Den unika identifieraren för prenumerationen som ska distribueras till. Om du inte anger något värde returneras den aktuella prenumerationen.

Returvärde

När den används för att ange omfång returnerar funktionen ett objekt som är giltigt för scope egenskapen i en modul eller en tilläggsresurstyp.

När den används för att hämta information om resursgruppen returnerar funktionen följande format:

{
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
  "name": "{resourceGroupName}",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "{resourceGroupLocation}",
  "managedBy": "{identifier-of-managing-resource}",
  "tags": {
  },
  "properties": {
    "provisioningState": "{status}"
  }
}

Egenskapen managedBy returneras endast för resursgrupper som innehåller resurser som hanteras av en annan tjänst. För hanterade program, Databricks och AKS är värdet för egenskapen resurs-ID för den hanterande resursen.

Exempel på resursgrupp

I följande exempel omfångsbegränsas en modul till en resursgrupp.

param resourceGroupName string

module exampleModule 'rgModule.bicep' = {
  name: 'exampleModule'
  scope: resourceGroup(resourceGroupName)
}

I nästa exempel returneras egenskaperna för resursgruppen.

output resourceGroupOutput object = resourceGroup()

Det returnerar ett objekt i följande format:

{
  "id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
  "name": "examplegroup",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "southcentralus",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

En vanlig användning av funktionen resourceGroup är att skapa resurser på samma plats som resursgruppen. I följande exempel används resursgruppens plats för ett standardparametervärde.

param location string = resourceGroup().location

Du kan också använda funktionen resourceGroup för att tillämpa taggar från resursgruppen på en resurs. Mer information finns i Tillämpa taggar från resursgruppen.

prenumeration

subscription()

Returnerar information om prenumerationen för den aktuella distributionen.

subscription(subscriptionId)

Returnerar ett objekt som används för att ange omfånget till en prenumeration.

Namnområde: az.

Kommentarer

Prenumerationsfunktionen har två distinkta användningsområden. En användning är för att ange omfånget för en modul eller en tilläggsresurstyp. Den andra användningen är för att få information om den aktuella prenumerationen. Placeringen av funktionen avgör dess användning. När den används för att ange scope egenskapen returneras ett omfångsobjekt.

subscription(subscriptionId) kan endast användas för att ange omfång.

subscription() kan användas för att ange omfång eller få information om prenumerationen.

Parametrar

Parameter Krävs Typ Beskrivning
subscriptionId Nej sträng Den unika identifieraren för prenumerationen som ska distribueras till. Om du inte anger något värde returneras den aktuella prenumerationen.

Returvärde

När den används för att ange omfång returnerar funktionen ett objekt som är giltigt för scope egenskapen i en modul eller en tilläggsresurstyp.

När den används för att hämta information om prenumerationen returnerar funktionen följande format:

{
  "id": "/subscriptions/{subscription-id}",
  "subscriptionId": "{subscription-id}",
  "tenantId": "{tenant-id}",
  "displayName": "{name-of-subscription}"
}

Prenumerationsexempel

I följande exempel omfångsbegränsas en modul till prenumerationen.

module exampleModule 'subModule.bicep' = {
  name: 'deployToSub'
  scope: subscription()
}

I nästa exempel returneras information om en prenumeration.

output subscriptionOutput object = subscription()

tenant

tenant()

Returnerar ett objekt som används för att ange omfånget till klientorganisationen.

Eller

Returnerar användarens klientorganisation.

Namnområde: az.

Kommentarer

tenant() kan användas med valfritt distributionsomfång. Den returnerar alltid den aktuella klientorganisationen. Du kan använda den här funktionen för att ange omfånget för en resurs eller för att hämta egenskaper för den aktuella klientorganisationen.

Returvärde

Ett objekt som används för att ange scope egenskapen för en modul eller en tilläggsresurstyp. Eller ett objekt med egenskaper för den aktuella klientorganisationen.

Klientexempel

I följande exempel visas en modul som distribuerats till klientorganisationen.

module exampleModule 'tenantModule.bicep' = {
  name: 'deployToTenant'
  scope: tenant()
}

I nästa exempel returneras egenskaperna för en klientorganisation.

var tenantInfo = tenant()

output tenantResult object = tenantInfo

Då returneras:

"tenantResult": {
  "type": "Object",
  "value": {
    "countryCode": "US",
    "displayName": "Contoso",
    "id": "/tenants/00000000-0000-0000-0000-000000000000",
    "tenantId": "00000000-0000-0000-0000-000000000000"
  }
}

Vissa resurser kräver att du anger klientorganisations-ID för en egenskap. I stället för att skicka klientorganisations-ID:t som en parameter kan du hämta det med klientfunktionen.

resource kv 'Microsoft.KeyVault/vaults@2021-06-01-preview' = {
  name: 'examplekeyvault'
  location: 'westus'
  properties: {
    tenantId: tenant().tenantId
    ...
  }
}

Nästa steg

Mer information om distributionsomfång finns i: