Udostępnij za pośrednictwem


Funkcje zakresu dla Bicep

W tym artykule opisano funkcje Bicep służące do uzyskiwania 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 w przypadku 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 pobierania obiektu zakresu. Aby pobrać właściwości grupy zarządzania, nie można przekazać identyfikatora grupy zarządzania.

Parametry

Parametr Wymagania Type Opis
identifier Nie. string Unikatowy identyfikator grupy zarządzania do wdrożenia. Nie używaj nazwy wyświetlanej dla grupy zarządzania. Jeśli nie podasz wartości, zostanie zwrócona 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)
}

Następny przykład zwraca 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@2023-04-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 dla modułu lub typu zasobu rozszerzenia. Inne użycie służy do uzyskiwania szczegółowych informacji o bieżącej grupie zasobów. Rozmieszczenie funkcji określa jej użycie. Gdy 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 służyć tylko do ustawiania zakresu.

Parametry

Parametr Wymagania Type Opis
resourceGroupName Nie. string Nazwa grupy zasobów do wdrożenia. Jeśli nie podasz wartości, zwracana jest bieżąca grupa zasobów.
subscriptionId Nie. string Unikatowy identyfikator subskrypcji do wdrożenia. Jeśli nie podasz wartości, zostanie zwrócona bieżąca subskrypcja.

Wartość zwracana

Jeśli jest używany do ustawiania zakresu, funkcja zwraca obiekt, który jest prawidłowy dla scope właściwości w module lub typie zasobu rozszerzenia.

W przypadku uzyskiwania 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, które zawierają zasoby zarządzane przez inną usługę. W przypadku aplikacji zarządzanych, usługi Databricks i usługi AKS wartość właściwości to identyfikator zasobu zarządzającego.

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 wartości parametru domyślnego.

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 różne zastosowania. Jednym z nich jest ustawienie zakresu dla modułu lub typu zasobu rozszerzenia. Inne użycie służy do uzyskiwania szczegółowych informacji o bieżącej subskrypcji. Rozmieszczenie funkcji określa jej użycie. Gdy jest używana do ustawiania scope właściwości, zwraca obiekt zakresu.

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

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

Parametry

Parametr Wymagania Type Opis
subscriptionId Nie. string Unikatowy identyfikator subskrypcji do wdrożenia. Jeśli nie podasz wartości, zostanie zwrócona bieżąca subskrypcja.

Wartość zwracana

Jeśli jest używany do ustawiania zakresu, funkcja zwraca obiekt, który jest prawidłowy dla scope właściwości w module lub typie zasobu rozszerzenia.

W przypadku uzyskiwania 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 moduł do subskrypcji.

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

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

output subscriptionOutput object = subscription()

tenant

tenant()

Zwraca obiekt używany do ustawiania zakresu dzierżawy.

Or

Zwraca dzierżawę użytkownika.

Przestrzeń nazw: az.

Uwagi

tenant() może być używany 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()
}

W następnym przykładzie zwracane są 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@2023-07-01' = {
  name: 'examplekeyvault'
  location: 'westus'
  properties: {
    tenantId: tenant().tenantId
    ...
  }
}

Następne kroki

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