Bicep için kapsam işlevleri

Bu makalede kapsam değerlerini almaya yönelik Bicep işlevleri açıklanmaktadır.

managementGroup

managementGroup()

Geçerli dağıtımdaki yönetim grubundan özelliklere sahip bir nesne döndürür.

managementGroup(identifier)

Kapsamı bir yönetim grubuna ayarlamak için kullanılan nesneyi döndürür.

Ad alanı: az.

Açıklamalar

managementGroup() yalnızca bir yönetim grubu dağıtımlarında kullanılabilir. Dağıtım işlemi için geçerli yönetim grubunu döndürür. Bir kapsam nesnesi alırken veya geçerli yönetim grubu için özellikler alırken kullanın.

managementGroup(identifier) herhangi bir dağıtım kapsamı için kullanılabilir, ancak yalnızca kapsam nesnesi elde edilirken kullanılabilir. Bir yönetim grubunun özelliklerini almak için yönetim grubu tanımlayıcısını geçiremezsiniz.

Parametreler

Parametre Gerekli Tür Açıklama
tanımlayıcı No string Dağıtılacak yönetim grubunun benzersiz tanımlayıcısı. Yönetim grubu için görünen adı kullanmayın. Bir değer sağlamazsanız, geçerli yönetim grubu döndürülür.

Döndürülen değer

Bir modülde veya uzantı kaynak türünde özelliğini ayarlamak scope için kullanılan nesne. Veya geçerli yönetim grubunun özelliklerine sahip bir nesne.

Yönetim grubu örneği

Aşağıdaki örnek, bir modülün kapsamını bir yönetim grubuna ayarlar.

param managementGroupIdentifier string

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

Sonraki örnek, geçerli yönetim grubunun özelliklerini döndürür.

targetScope = 'managementGroup'

var mgInfo = managementGroup()

output mgResult object = mgInfo

Şunu döndürür:

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

Sonraki örnek yeni bir yönetim grubu oluşturur ve üst yönetim grubunu ayarlamak için bu işlevi kullanır.

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

Geçerli kaynak grubunu temsil eden bir nesne döndürür.

resourceGroup(resourceGroupName)

And

resourceGroup(subscriptionId, resourceGroupName)

Kapsamı bir kaynak grubuna ayarlamak için kullanılan bir nesneyi döndürür.

Ad alanı: az.

Açıklamalar

resourceGroup işlevinin iki farklı kullanımı vardır. Kullanımlardan biri, bir modül veya uzantı kaynak türünde kapsamı ayarlamaktır. Diğer kullanım, geçerli kaynak grubuyla ilgili ayrıntıları almak içindir. işlevinin yerleşimi, işlevinin kullanımını belirler. özelliğini ayarlamak scope için kullanıldığında bir kapsam nesnesi döndürür.

resourceGroup() , kapsamı ayarlamak veya kaynak grubuyla ilgili ayrıntıları almak için kullanılabilir.

resourceGroup(resourceGroupName) ve resourceGroup(subscriptionId, resourceGroupName) yalnızca kapsamı ayarlamak için kullanılabilir.

Parametreler

Parametre Gerekli Tür Açıklama
resourceGroupName No string Dağıtılacak kaynak grubunun adı. Bir değer sağlamazsanız, geçerli kaynak grubu döndürülür.
subscriptionId No string Dağıtılacak aboneliğin benzersiz tanımlayıcısı. Bir değer sağlamazsanız geçerli abonelik döndürülür.

Döndürülen değer

Kapsamı ayarlamak için kullanıldığında işlev, bir modül veya uzantı kaynak türündeki scope özelliği için geçerli olan bir nesne döndürür.

İşlev, kaynak grubuyla ilgili ayrıntıları almak için kullanıldığında aşağıdaki biçimi döndürür:

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

managedBy özelliği yalnızca başka bir hizmet tarafından yönetilen kaynakları içeren kaynak grupları için döndürülür. Yönetilen Uygulamalar, Databricks ve AKS için özelliğin değeri, yönetim kaynağının kaynak kimliğidir.

Kaynak grubu örneği

Aşağıdaki örnek, bir modülün kapsamını bir kaynak grubu olarak kapsar.

param resourceGroupName string

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

Sonraki örnek, kaynak grubunun özelliklerini döndürür.

output resourceGroupOutput object = resourceGroup()

Aşağıdaki biçimde bir nesne döndürür:

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

resourceGroup işlevinin yaygın kullanımlarından biri, kaynak grubuyla aynı konumda kaynak oluşturmaktır. Aşağıdaki örnek, varsayılan parametre değeri için kaynak grubu konumunu kullanır.

param location string = resourceGroup().location

Kaynak grubundan bir kaynağa etiket uygulamak için resourceGroup işlevini de kullanabilirsiniz. Daha fazla bilgi için bkz. Kaynak grubundan etiket uygulama.

aboneliği

subscription()

Geçerli dağıtım için abonelikle ilgili ayrıntıları döndürür.

subscription(subscriptionId)

Kapsamı bir aboneliğe ayarlamak için kullanılan nesneyi döndürür.

Ad alanı: az.

Açıklamalar

Abonelik işlevinin iki farklı kullanımı vardır. Kullanımlardan biri, bir modül veya uzantı kaynak türünde kapsamı ayarlamaktır. Diğer kullanım, geçerli abonelikle ilgili ayrıntıları almak içindir. işlevinin yerleşimi, işlevinin kullanımını belirler. özelliğini ayarlamak scope için kullanıldığında bir kapsam nesnesi döndürür.

subscription(subscriptionId) yalnızca kapsamı ayarlamak için kullanılabilir.

subscription() kapsamı ayarlamak veya abonelikle ilgili ayrıntıları almak için kullanılabilir.

Parametreler

Parametre Gerekli Tür Açıklama
subscriptionId No string Dağıtılacak aboneliğin benzersiz tanımlayıcısı. Bir değer sağlamazsanız geçerli abonelik döndürülür.

Döndürülen değer

Kapsamı ayarlamak için kullanıldığında işlev, bir modül veya uzantı kaynak türündeki scope özelliği için geçerli olan bir nesne döndürür.

Abonelikle ilgili ayrıntıları almak için kullanıldığında işlev aşağıdaki biçimi döndürür:

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

Abonelik örneği

Aşağıdaki örnek, aboneliğin kapsamını bir modülün kapsamına alır.

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

Sonraki örnek, bir aboneliğin ayrıntılarını döndürür.

output subscriptionOutput object = subscription()

Kiracı

tenant()

Kapsamı kiracı olarak ayarlamak için kullanılan bir nesne döndürür.

Veya

Kullanıcının kiracısını döndürür.

Ad alanı: az.

Açıklamalar

tenant() herhangi bir dağıtım kapsamıyla kullanılabilir. Her zaman geçerli kiracıyı döndürür. Bir kaynağın kapsamını ayarlamak veya geçerli kiracının özelliklerini almak için bu işlevi kullanabilirsiniz.

Döndürülen değer

Bir modül veya uzantı kaynak türünde özelliğini ayarlamak scope için kullanılan nesne. Veya geçerli kiracıyla ilgili özelliklere sahip bir nesne.

Kiracı örneği

Aşağıdaki örnekte kiracıya dağıtılan bir modül gösterilmektedir.

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

Sonraki örnek bir kiracının özelliklerini döndürür.

var tenantInfo = tenant()

output tenantResult object = tenantInfo

Şunu döndürür:

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

Bazı kaynaklar, bir özelliğin kiracı kimliğini ayarlamayı gerektirir. Kiracı kimliğini parametre olarak geçirmek yerine kiracı işleviyle alabilirsiniz.

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

Sonraki adımlar

Dağıtım kapsamları hakkında daha fazla bilgi edinmek için bkz: