Funkcje zakresu dla elementu Bicep

W tym artykule opisano funkcje Bicep służące do pobierania wartości zakresu.

managementGroup

managementGroup()

Zwraca obiekt z właściwościami z grupy zarządzania w bieżącym wdrożeniu.

managementGroup(identifier)

Zwraca obiekt używany do ustawiania zakresu na grupę zarządzania.

Przestrzeń nazw: az.

Uwagi

managementGroup() można używać tylko we wdrożeniach grupy zarządzania. Zwraca bieżącą grupę zarządzania dla operacji wdrażania. Użyj polecenia podczas pobierania obiektu zakresu lub pobierania właściwości dla bieżącej grupy zarządzania.

managementGroup(identifier) może być używany dla dowolnego zakresu wdrożenia, ale tylko w przypadku uzyskiwania obiektu zakresu. Aby pobrać właściwości grupy zarządzania, nie można przekazać identyfikatora grupy zarządzania.

Parametry

Parametr Wymagane Typ Opis
identyfikator Nie ciąg Unikatowy identyfikator grupy zarządzania do wdrożenia. Nie używaj nazwy wyświetlanej dla grupy zarządzania. Jeśli nie podasz wartości, zwracana jest bieżąca grupa zarządzania.

Wartość zwracana

Obiekt używany do ustawiania scope właściwości w module lub typie zasobu rozszerzenia. Lub obiekt z właściwościami bieżącej grupy zarządzania.

Przykład grupy zarządzania

Poniższy przykład ustawia zakres modułu na grupę zarządzania.

param managementGroupIdentifier string

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

W następnym przykładzie są zwracane właściwości bieżącej grupy zarządzania.

targetScope = 'managementGroup'

var mgInfo = managementGroup()

output mgResult object = mgInfo

Zostanie zwrócona następująca wartość:

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

W następnym przykładzie zostanie utworzona nowa grupa zarządzania i zostanie użyta ta funkcja do ustawienia nadrzędnej grupy zarządzania.

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

Zwraca obiekt reprezentujący bieżącą grupę zasobów.

resourceGroup(resourceGroupName)

And

resourceGroup(subscriptionId, resourceGroupName)

Zwróć obiekt używany do ustawiania zakresu na grupę zasobów.

Przestrzeń nazw: az.

Uwagi

Funkcja resourceGroup ma dwa odrębne zastosowania. Jednym z nich jest ustawienie zakresu w module lub typie zasobu rozszerzenia. Inne użycie służy do uzyskiwania szczegółowych informacji o bieżącej grupie zasobów. Umieszczenie funkcji określa jego użycie. Gdy właściwość jest używana do ustawiania scope właściwości, zwraca obiekt zakresu.

resourceGroup() może służyć do ustawiania zakresu lub uzyskiwania szczegółowych informacji o grupie zasobów.

resourceGroup(resourceGroupName) i resourceGroup(subscriptionId, resourceGroupName) może być używany tylko do ustawiania zakresu.

Parametry

Parametr Wymagane Typ Opis
resourceGroupName Nie ciąg Nazwa grupy zasobów do wdrożenia. Jeśli nie podasz wartości, zwracana jest bieżąca grupa zasobów.
subscriptionId Nie ciąg Unikatowy identyfikator subskrypcji do wdrożenia. Jeśli nie podasz wartości, zwracana jest bieżąca subskrypcja.

Wartość zwracana

W przypadku ustawienia zakresu funkcja zwraca obiekt, który jest prawidłowy dla scope właściwości w typie zasobu modułu lub rozszerzenia.

W przypadku korzystania ze szczegółowych informacji o grupie zasobów funkcja zwraca następujący format:

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

Właściwość ManagedBy jest zwracana tylko dla grup zasobów zawierających zasoby zarządzane przez inną usługę. W przypadku aplikacji zarządzanych, usługi Databricks i AKS wartość właściwości to identyfikator zasobu zarządzania.

Przykład grupy zasobów

Poniższy przykład obejmuje zakres modułu do grupy zasobów.

param resourceGroupName string

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

W następnym przykładzie zwracane są właściwości grupy zasobów.

output resourceGroupOutput object = resourceGroup()

Zwraca obiekt w następującym formacie:

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

Typowym zastosowaniem funkcji resourceGroup jest utworzenie zasobów w tej samej lokalizacji co grupa zasobów. W poniższym przykładzie użyto lokalizacji grupy zasobów dla domyślnej wartości parametru.

param location string = resourceGroup().location

Możesz również użyć funkcji resourceGroup, aby zastosować tagi z grupy zasobów do zasobu. Aby uzyskać więcej informacji, zobacz Stosowanie tagów z grupy zasobów.

subskrypcja

subscription()

Zwraca szczegóły dotyczące subskrypcji dla bieżącego wdrożenia.

subscription(subscriptionId)

Zwraca obiekt używany do ustawiania zakresu na subskrypcję.

Przestrzeń nazw: az.

Uwagi

Funkcja subskrypcji ma dwa odrębne zastosowania. Jednym z nich jest ustawienie zakresu w module lub typie zasobu rozszerzenia. Inne użycie służy do uzyskiwania szczegółowych informacji o bieżącej subskrypcji. Umieszczenie funkcji określa jego użycie. Gdy właściwość jest używana do ustawiania scope właściwości, zwraca obiekt zakresu.

subscription(subscriptionId) można używać tylko do ustawiania zakresu.

subscription() można użyć do ustawiania zakresu lub uzyskiwania szczegółowych informacji o subskrypcji.

Parametry

Parametr Wymagane Typ Opis
subscriptionId Nie ciąg Unikatowy identyfikator subskrypcji do wdrożenia. Jeśli nie podasz wartości, zwracana jest bieżąca subskrypcja.

Wartość zwracana

W przypadku ustawienia zakresu funkcja zwraca obiekt, który jest prawidłowy dla scope właściwości w typie zasobu modułu lub rozszerzenia.

W przypadku korzystania ze szczegółowych informacji o subskrypcji funkcja zwraca następujący format:

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

Przykład subskrypcji

Poniższy przykład obejmuje zakres modułu subskrypcji.

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

Następny przykład zwraca szczegóły subskrypcji.

output subscriptionOutput object = subscription()

Dzierżawy

tenant()

Zwraca obiekt używany do ustawiania zakresu na dzierżawę.

Lub

Zwraca dzierżawę użytkownika.

Przestrzeń nazw: az.

Uwagi

tenant() można używać z dowolnym zakresem wdrożenia. Zawsze zwraca bieżącą dzierżawę. Za pomocą tej funkcji można ustawić zakres zasobu lub uzyskać właściwości dla bieżącej dzierżawy.

Wartość zwracana

Obiekt używany do ustawiania scope właściwości w module lub typie zasobu rozszerzenia. Lub obiekt z właściwościami dotyczącymi bieżącej dzierżawy.

Przykład dzierżawy

W poniższym przykładzie pokazano moduł wdrożony w dzierżawie.

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

Następny przykład zwraca właściwości dzierżawy.

var tenantInfo = tenant()

output tenantResult object = tenantInfo

Zostanie zwrócona następująca wartość:

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

Niektóre zasoby wymagają ustawienia identyfikatora dzierżawy dla właściwości. Zamiast przekazywać identyfikator dzierżawy jako parametr, możesz pobrać go z funkcją dzierżawy.

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

Następne kroki

Aby dowiedzieć się więcej na temat zakresów wdrażania, zobacz: