ARM şablonları için kaynak işlevleri

Kaynak Yöneticisi, Azure Resource Manager şablonunuzda (ARM şablonu) kaynak değerlerini almak için aşağıdaki işlevleri sağlar:

Parametrelerden, değişkenlerden veya geçerli dağıtımdan değer almak için bkz. dağıtım değeri işlevleri.

Dağıtım kapsamı değerlerini almak için bkz. kapsam işlevleri.

Extensionresourceıd

extensionResourceId(baseResourceId, resourceType, resourceName1, [resourceName2], ...)

Özelliklerine eklemek için başka bir kaynağa uygulanan bir kaynak türü olan uzantı kaynağıIÇIN kaynak kimliğini döndürür.

Parametreler

Parametre Gerekli Tür Description
Baseresourceıd Yes string Uzantı kaynağının uygulandığı kaynağın kaynak KIMLIĞI.
resourceType Yes string Kaynak sağlayıcısı ad alanı dahil olmak üzere uzantı kaynağının türü.
resourceName1 Yes string Uzantı kaynağının adı.
resourceName2 No string Gerekirse, sonraki kaynak adı segmenti.

Kaynak türü daha fazla kesim içerdiğinde kaynak adlarını parametre olarak eklemeye devam edin.

Döndürülen değer

Bu işlev tarafından döndürülen kaynak KIMLIĞININ temel biçimi:

{scope}/providers/{extensionResourceProviderNamespace}/{extensionResourceType}/{extensionResourceName}

Kapsam kesimi, genişletilmekte olan temel kaynağa göre değişir. Örneğin, bir aboneliğin KIMLIĞI bir kaynak grubunun KIMLIĞINDEN farklı kesimlere sahiptir.

Uzantı kaynağı bir kaynağa uygulandığında, kaynak kimliği aşağıdaki biçimde döndürülür:

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{baseResourceProviderNamespace}/{baseResourceType}/{baseResourceName}/providers/{extensionResourceProviderNamespace}/{extensionResourceType}/{extensionResourceName}

Uzantı kaynağı bir kaynak grubuna uygulandığında, döndürülen biçim:

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{extensionResourceProviderNamespace}/{extensionResourceType}/{extensionResourceName}

Bu işlevi bir kaynak grubuyla birlikte kullanmayla ilgili bir örnek, sonraki bölümde gösterilmiştir.

Uzantı kaynağı bir aboneliğe uygulandığında, döndürülen biçim:

/subscriptions/{subscriptionId}/providers/{extensionResourceProviderNamespace}/{extensionResourceType}/{extensionResourceName}

Uzantı kaynağı bir yönetim grubuna uygulandığında, döndürülen biçim:

/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/{extensionResourceProviderNamespace}/{extensionResourceType}/{extensionResourceName}

Bu işlevi bir yönetim grubuyla birlikte kullanmayla ilgili bir örnek, sonraki bölümde gösterilmiştir.

Extensionresourceıd örneği

Aşağıdaki örnek, bir kaynak grubu kilidinin kaynak KIMLIĞINI döndürür.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "lockName": {
      "type": "string"
    }
  },
  "variables": {},
  "resources": [],
  "outputs": {
    "lockResourceId": {
      "type": "string",
      "value": "[extensionResourceId(resourceGroup().Id , 'Microsoft.Authorization/locks', parameters('lockName'))]"
    }
  }
}

Bir yönetim grubuna dağıtılan özel bir ilke tanımı uzantı kaynağı olarak uygulanır. Bir ilke oluşturup atamak için aşağıdaki şablonu bir yönetim grubuna dağıtın.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.4.1.14562",
      "templateHash": "2350252618174097128"
    }
  },
  "parameters": {
    "targetMG": {
      "type": "string",
      "metadata": {
        "description": "Target Management Group"
      }
    },
    "allowedLocations": {
      "type": "array",
      "defaultValue": [
        "australiaeast",
        "australiasoutheast",
        "australiacentral"
      ],
      "metadata": {
        "description": "An array of the allowed locations, all other locations will be denied by the created policy."
      }
    }
  },
  "functions": [],
  "variables": {
    "mgScope": "[tenantResourceId('Microsoft.Management/managementGroups', parameters('targetMG'))]",
    "policyDefinitionName": "LocationRestriction"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/policyDefinitions",
      "apiVersion": "2020-03-01",
      "name": "[variables('policyDefinitionName')]",
      "properties": {
        "policyType": "Custom",
        "mode": "All",
        "parameters": {},
        "policyRule": {
          "if": {
            "not": {
              "field": "location",
              "in": "[parameters('allowedLocations')]"
            }
          },
          "then": {
            "effect": "deny"
          }
        }
      }
    },
    {
      "type": "Microsoft.Authorization/policyAssignments",
      "apiVersion": "2020-03-01",
      "name": "location-lock",
      "properties": {
        "scope": "[variables('mgScope')]",
        "policyDefinitionId": "[extensionResourceId(variables('mgScope'), 'Microsoft.Authorization/policyDefinitions', variables('policyDefinitionName'))]"
      },
      "dependsOn": [
        "[format('Microsoft.Authorization/policyDefinitions/{0}', variables('policyDefinitionName'))]"
      ]
    }
  ]
}

Yerleşik ilke tanımları, kiracı düzeyi kaynaklarıdır. Yerleşik bir ilke tanımı dağıtmaya ilişkin bir örnek için bkz. Tenantresourceıd.

Listele

list{Value}(resourceName or resourceIdentifier, apiVersion, functionValues)

Bu işlevin sözdizimi, liste işlemlerinin adına göre değişir. Her uygulama, bir liste işlemini destekleyen kaynak türünün değerlerini döndürür. İşlem adı ile başlamalı list ve bir sonekine sahip olabilir. Bazı yaygın kullanımlar,, ve ' dir list listKeys listKeyValue listSecrets .

Parametreler

Parametre Gerekli Tür Description
resourceName veya ResourceIdentifier Yes string Kaynak için benzersiz tanımlayıcı.
apiVersion Yes string Kaynak çalışma zamanı durumunun API sürümü. Genellikle, yyyy-aa-gg biçiminde.
functionValues No object İşlevi için değerler içeren bir nesne. Bu nesneyi yalnızca bir depolama hesabındaki Listaccountsas gibi parametre değerleriyle bir nesne almayı destekleyen işlevler için sağlayın. Bu makalede işlev değerlerini geçirme örneği gösterilmektedir.

Geçerli kullanımlar

Liste işlevleri bir kaynak tanımının özelliklerinde kullanılabilir. Bir şablonun çıktılar bölümünde hassas bilgiler sunan bir liste işlevi kullanmayın. Çıkış değerleri dağıtım geçmişinde depolanır ve kötü niyetli bir kullanıcı tarafından alınabilir.

Özellik yinelemesiile kullanıldığında, input ifadesi Resource özelliğine atandığı için liste işlevlerini kullanabilirsiniz. countListe işlevi çözümlenmeden önce Count belirlenmesi gerektiğinden, bunları ile kullanamazsınız.

Uygulamalar

Listenin olası kullanımları aşağıdaki tabloda gösterilmiştir.

Kaynak türü İşlev adı
Microsoft. addons/supportProviders listsupportplanınfo
Microsoft. AnalysisServices/sunucuları listGatewayStatus
Microsoft. Apimanayönetimi/hizmet/authorizationServers Listgizlilikler
Microsoft. Apimanayönetimi/hizmet/ağ geçitleri ListKeys 'i al
Microsoft. Apimanayönetimi/hizmet/IdentityProviders Listgizlilikler
Microsoft. Apimanayönetimi/hizmet/namedValues Liste değeri
Microsoft. Apimanayönetimi/Service/Openıdconnectproviders Listgizlilikler
Microsoft. Apimanayönetimi/hizmet/abonelikler Listgizlilikler
Microsoft. AppConfiguration/Configurationmağazaları ListKeys 'i al
Microsoft. AppPlatform/yay listTestKeys
Microsoft. Automation/automationAccounts ListKeys 'i al
Microsoft. Batch/batchAccounts ListKeys 'i al
Microsoft. Batchaı/Workspaces/denemeleri/Jobs lıutputfiles
Microsoft. Blockzincirine/blockchainMembers listApiKeys
Microsoft. Blockzincirine/blockchainMembers/transactionNodes listApiKeys
Microsoft. BotService/botServices/Channels listChannelWithKeys
Microsoft. Cache/redsıs ListKeys 'i al
Microsoft. Biliveservices/hesapları ListKeys 'i al
Microsoft. ContainerRegistry/kayıt defterleri listBuildSourceUploadUrl 'Si
Microsoft. ContainerRegistry/kayıt defterleri listCredentials
Microsoft. ContainerRegistry/kayıt defterleri Listkullanımlar
Microsoft. ContainerRegistry/kayıt defterleri/agentpools listQueueStatus
Microsoft. ContainerRegistry/kayıt defterleri/buildTasks listSourceRepositoryProperties
Microsoft. ContainerRegistry/kayıt defterleri/buildTasks/Steps listBuildArguments
Microsoft. ContainerRegistry/kayıt defterleri/taskçalıştırmaları listDetails
Microsoft. ContainerRegistry/kayıt defterleri/Web kancaları listEvents
Microsoft. ContainerRegistry/kayıt defterleri/çalıştırmaları listLogSasUrl 'Si
Microsoft. ContainerRegistry/kayıt defterleri/görevler listDetails
Microsoft. ContainerService/Managedkümeler listClusterAdminCredential
Microsoft. ContainerService/Managedkümeler listClusterMonitoringUserCredential
Microsoft. ContainerService/Managedkümeler listClusterUserCredential
Microsoft. ContainerService/Managedkümeler/accessProfiles listCredential
Microsoft. DataBox/Jobs listCredentials
Microsoft. DataFactory/DataFactory/ağ geçitleri listauthkeys
Microsoft. DataFactory/Factory/ıntegrationçalışma zamanları listauthkeys
Microsoft. DataLakeAnalytics/hesaplar/storageAccounts/kapsayıcılar listSasTokens
Microsoft. DataShare/hesaplar/paylaşımlar Listeşitlemeler
Microsoft. DataShare/accounts/shareSubscriptions Listsourcesharesynitizationsettings
Microsoft. DataShare/accounts/shareSubscriptions listSynchronizationDetails
Microsoft. DataShare/accounts/shareSubscriptions Listeşitlemeler
Microsoft. Devices/iotHubs ListKeys 'i al
Microsoft. Devices/ıothubs/iotHubKeys ListKeys 'i al
Microsoft. Devices/provisioningServices/anahtarlar ListKeys 'i al
Microsoft. Devices/provisioningServices ListKeys 'i al
Microsoft. DevTestLab/Labs Listvhd 'ler
Microsoft. DevTestLab/Labs/zamanlamaları ListApplicable
Microsoft. DevTestLab/Labs/Users/Serviceyapılar Listapperepblezamanlamalar
Microsoft. DevTestLab/Labs/virtualMachines Listapperepblezamanlamalar
Microsoft. DocumentDB/databaseAccounts listConnectionStrings
Microsoft. DocumentDB/databaseAccounts ListKeys 'i al
Microsoft. DocumentDB/databaseAccounts/Not Bookworkspaces Listconnectionınfo
Microsoft. DomainRegistration Listdomainönerilere
Microsoft. DomainRegistration/topLevelDomains listAgreements
Microsoft. EventGrid/Domains ListKeys 'i al
Microsoft. EventGrid/konuları ListKeys 'i al
Microsoft. EventHub/ad alanları/authorizationRules ListKeys 'i al
Microsoft. EventHub/namespaces/Disyıldız Recoveryconfigs/authorizationRules ListKeys 'i al
Microsoft. EventHub/namespaces/eventhubs/authorizationRules ListKeys 'i al
Microsoft. ımportexport/işler listBitLockerKeys
Microsoft. kusto/kümeler/veritabanları Listsorumlularını
Microsoft. LabServices/kullanıcılar Listortamortamları
Microsoft. LabServices/kullanıcılar ListLabs
Microsoft. Logic/ıntegrationaccounts/sözleşmeleri listContentCallbackUrl
Microsoft. Logic/ıntegrationaccounts/derlemeler listContentCallbackUrl
Microsoft. Logic/ıntegrationaccounts listCallbackUrl
Microsoft. Logic/ıntegrationaccounts listKeyVaultKeys
Microsoft. Logic/ıntegrationaccounts/Maps listContentCallbackUrl
Microsoft. Logic/ıntegrationaccounts/iş ortakları listContentCallbackUrl
Microsoft. Logic/ıntegrationaccounts/schemas listContentCallbackUrl
Microsoft. Logic/iş akışları listCallbackUrl
Microsoft. Logic/iş akışları listSwagger
Microsoft. Logic/iş akışları/çalıştırmalar/eylemler Listexpressionizlemeleri
Microsoft. Logic/iş akışları/çalıştırmalar/Actions/tekrarları Listexpressionizlemeleri
Microsoft. Logic/iş akışları/Tetikleyiciler listCallbackUrl
Microsoft. Logic/iş akışları/sürümler/Tetikleyiciler listCallbackUrl
Microsoft. Machinöğrenim/webServices ListKeys 'i al
Microsoft. Machinöğrenim/çalışma alanları listworkspacekeys
Microsoft. MachineLearningServices/çalışma alanları/hesaplar ListKeys 'i al
Microsoft. MachineLearningServices/çalışma alanları/hesaplar listNodes
Microsoft. MachineLearningServices/çalışma alanları ListKeys 'i al
MICROSOFT. Haritalar/accounts ListKeys 'i al
Microsoft. Media/mediaservices/varlıkları listContainerSas
Microsoft. Media/mediaservices/varlıkları Liststreamingkonumlandırıcı
Microsoft. Media/mediaservices/Streamingkonumlandırıcı listContentKeys
Microsoft. Media/mediaservices/Streamingkonumlandırıcı listPaths
Microsoft. Network/applicationSecurityGroups Liztipi yapılandırması
Microsoft. Notificationhub 'Lar/ad alanları/authorizationRules ListKeys 'i al
Microsoft. Notificationhub 'Lar/ad alanları/Notificationhub/authorizationRules ListKeys 'i al
Microsoft. Operationalınsights/çalışma alanları list
Microsoft. Operationalınsights/çalışma alanları ListKeys 'i al
Microsoft. Poliyeleghts/düzeltmelere Listdağıtımlar
Microsoft. Redhatopenshıft/openShiftClusters listCredentials
Microsoft. Relay/Namespace/authorizationRules ListKeys 'i al
Microsoft. Relay/namespaces/Disyıldız Recoveryconfigs/authorizationRules ListKeys 'i al
Microsoft. Relay/Namespace/HybridConnections/authorizationRules ListKeys 'i al
Microsoft. Relay/namespaces/Wcfreyerleştir/authorizationRules ListKeys 'i al
Microsoft. Search/searchServices listAdminKeys
Microsoft. Search/searchServices listQueryKeys
Microsoft. ServiceBus/namespaces/authorizationRules ListKeys 'i al
Microsoft. ServiceBus/namespaces/Diskalrecoveryconfigs/authorizationRules ListKeys 'i al
Microsoft. ServiceBus/namespaces/kuyruklar/authorizationRules ListKeys 'i al
Microsoft. ServiceBus/namespaces/konular/authorizationRules ListKeys 'i al
Microsoft. SignalRService/SignalR ListKeys 'i al
MICROSOFT. Depolama/storageaccounts listAccountSas
MICROSOFT. Depolama/storageaccounts ListKeys 'i al
MICROSOFT. Depolama/storageaccounts listServiceSas
Microsoft. StorSimple/yöneticileri/cihazları listFailoverSets
Microsoft. StorSimple/yöneticileri/cihazları listFailoverTargets
Microsoft. StorSimple/yöneticileri listActivationKey
Microsoft. StorSimple/yöneticileri listPublicEncryptionKey
Microsoft. SYNAPSE/Workspaces/ıntegrationçalışmazamanları listAuthKeys
Microsoft. Web/Connectiongateway 'ler ListStatus
Microsoft. Web/Connections listconsentlinks
Microsoft. Web/Customapsıs Listwsdlınterfaces
Microsoft. Web/konumlar listwsdlınterfaces
Microsoft. Web/apimanagementaccounts/API/bağlantı listconnectionkeys
Microsoft. Web/apimanagementaccounts/API/bağlantı listSecrets
Microsoft. Web/siteler/yedeklemeler list
Microsoft. Web/Sites/config list
Microsoft. Web/Sites/işlevleri ListKeys 'i al
Microsoft. Web/Sites/işlevleri Listgizlilikler
Microsoft. Web/Sites/hybridconnectionnamespaces/geçişler ListKeys 'i al
Microsoft. Web/siteler listsyncfunctiontriggerstatus
Microsoft. Web/Sites/yuvaları/işlevleri Listgizlilikler
Microsoft. Web/siteler/yuvalar/yedeklemeler list
Microsoft. Web/siteler/yuvalar/yapılandırma list
Microsoft. Web/Sites/yuvaları/işlevleri Listgizlilikler

Hangi kaynak türlerinin bir liste işlemine sahip olduğunu öğrenmek için aşağıdaki seçeneklere sahipsiniz:

  • Bir kaynak sağlayıcısı için REST API işlemleri görüntüleyin ve liste işlemlerine bakın. Örneğin, depolama hesaplarının ListKeys işlemivardır.

  • Get-AzProviderOperation PowerShell cmdlet 'ini kullanın. Aşağıdaki örnek, depolama hesapları için tüm liste işlemlerini alır:

    Get-AzProviderOperation -OperationSearchString "Microsoft.Storage/*" | where {$_.Operation -like "*list*"} | FT Operation
    
  • Yalnızca liste işlemlerini filtrelemek için aşağıdaki Azure CLı komutunu kullanın:

    az provider operation show --namespace Microsoft.Storage --query "resourceTypes[?name=='storageAccounts'].operations[].name | [?contains(@, 'list')]"
    

Döndürülen değer

Döndürülen nesne, kullandığınız liste işlevine göre değişir. Örneğin, bir depolama hesabı için listKeys aşağıdaki biçimi döndürür:

{
  "keys": [
    {
      "keyName": "key1",
      "permissions": "Full",
      "value": "{value}"
    },
    {
      "keyName": "key2",
      "permissions": "Full",
      "value": "{value}"
    }
  ]
}

Diğer liste işlevlerinde farklı dönüş biçimleri vardır. Bir işlevin biçimini görmek için, örnek şablonda gösterildiği gibi çıktılar bölümüne ekleyin.

Açıklamalar

Kaynak adı ya da RESOURCEID işlevinikullanarak kaynağı belirtin. Başvurulan kaynağı dağıtan şablonda bir liste işlevi kullanırken, kaynak adını kullanın.

listKoşullu olarak dağıtılan bir kaynakta bir işlev kullanırsanız, işlev, kaynak dağıtılmasa bile değerlendirilir. listİşlev mevcut olmayan bir kaynağa başvuruyorsa bir hata alırsınız. İşlevin if yalnızca kaynak dağıtıldığında değerlendirildiğinden emin olmak için işlevini kullanın. Koşullu olarak dağıtılan bir kaynakla IF ve List kullanan bir örnek şablon için IF işlevine bakın.

Liste örneği

Aşağıdaki örnek, dağıtım betikleriiçin bir değer ayarlarken ListKeys kullanır.

"storageAccountSettings": {
  "storageAccountName": "[variables('storageAccountName')]",
  "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2019-06-01').keys[0].value]"
}

Sonraki örnekte bir parametre alan bir liste işlevi gösterilmektedir. Bu durumda, işlev Listaccountsas olur. Sona erme saati için bir nesne geçirin. Süre sonu zamanı gelecekte olmalıdır.

"parameters": {
  "accountSasProperties": {
    "type": "object",
    "defaultValue": {
      "signedServices": "b",
      "signedPermission": "r",
      "signedExpiry": "2020-08-20T11:00:00Z",
      "signedResourceTypes": "s"
    }
  }
},
...
"sasToken": "[listAccountSas(parameters('storagename'), '2018-02-01', parameters('accountSasProperties')).accountSasToken]"

pickZones

pickZones(providerNamespace, resourceType, location, [numberOfZones], [offset])

Kaynak türünün belirtilen konum veya bölge için bölgeleri destekleyip desteklemediğini belirler. Bu işlev yalnızca ZGen kaynakları destekler, bölge yedekli Hizmetleri boş bir dizi döndürür. Daha fazla bilgi için bkz. kullanılabilirlik alanları destekleyen Azure hizmetleri. PickZones işlevini bölge yedekli hizmetlerle kullanmak için aşağıdaki örneklere bakın.

Parametreler

Parametre Gerekli Tür Description
providerNamespace Yes string Bölge desteğini denetlenecek kaynak türü için kaynak sağlayıcısı ad alanı.
resourceType Yes string Bölge desteğini denetlenecek kaynak türü.
location Yes string Bölge desteğinin denetlenecek bölge.
numberOfZones No tamsayı Döndürülecek mantıksal bölge sayısı. Varsayılan değer 1'dir. Sayı, 1 ile 3 arasında pozitif bir tamsayı olmalıdır. Tek bölge kaynakları için 1 kullanın. Çok bölgeli kaynaklar için, değer desteklenen bölge sayısından küçük veya buna eşit olmalıdır.
uzaklık No tamsayı Başlangıç mantıksal bölgesinden gelen fark. Aralık artı numberOfZones desteklenen bölge sayısını aşarsa, işlev bir hata döndürür.

Döndürülen değer

Desteklenen bölgelere sahip bir dizi. Konum ve numberOfZones için varsayılan değerleri kullanırken, bölgeleri destekleyen bir kaynak türü ve bölgesi aşağıdaki diziyi döndürür:

[
    "1"
]

numberOfZonesParametre 3 olarak ayarlandığında, şunu döndürür:

[
    "1",
    "2",
    "3"
]

Kaynak türü veya bölgesi bölgeleri desteklemiyorsa, boş bir dizi döndürülür. Ayrıca, bölgesel olarak yedekli hizmetler için boş bir dizi döndürülür.

[
]

Açıklamalar

Azure kullanılabilirlik alanları-bölgesel ve bölgesel olarak yedekli farklı kategoriler vardır. Pickzones işlevi, bir bölgesel kaynağı için bir kullanılabilirlik alanı numarası veya numarası döndürmek üzere kullanılabilir. Bölge yedekli hizmetler (ZRS) için, işlev boş bir dizi döndürür. Genel kaynaklar genellikle kaynak üstbilgisindeki bir özelliğin kullanımı ile tanımlanabilir zones . Bölge yedekli Hizmetleri, kaynak başına kullanılabilirlik bölgelerini tanımlamaya ve kullanmaya yönelik farklı yöntemlere sahiptir, kullanılabilirlik alanları için destek kategorisini belirlemek üzere belirli bir hizmet için belgeleri kullanın. Daha fazla bilgi için bkz. kullanılabilirlik alanları destekleyen Azure hizmetleri.

Belirli bir Azure bölgesinin veya konumunun kullanılabilirlik alanlarını destekleyip desteklemediğini öğrenmek için, bir bölgesel kaynak türüyle pickzones () işlevini çağırın (örneğin,) Microsoft.Storage/storageAccounts . Yanıt boş değilse bölge, kullanılabilirlik alanlarını destekler.

pickZones örneği

Aşağıdaki şablonda pickZones işlevinin kullanımıyla ilgili üç sonuç gösterilmektedir.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "functions": [],
  "variables": {},
  "resources": [],
  "outputs": {
    "supported": {
      "type": "array",
      "value": "[pickZones('Microsoft.Compute', 'virtualMachines', 'westus2')]"
    },
    "notSupportedRegion": {
      "type": "array",
      "value": "[pickZones('Microsoft.Compute', 'virtualMachines', 'northcentralus')]"
    },
    "notSupportedType": {
      "type": "array",
      "value": "[pickZones('Microsoft.Cdn', 'profiles', 'westus2')]"
    }
  }
}

Yukarıdaki örneklerden alınan çıktı üç dizi döndürür.

Ad Tür Değer
destekleniyor array ["1"]
notSupportedRegion array []
notSupportedType array []

Bölgelere yönelik null değer sağlayıp sağlamacağınızı veya farklı bölgelere sanal makineler atamanızı anlamak için pickZones 'tan gelen yanıtı kullanabilirsiniz. Aşağıdaki örnek, bölgelerin kullanılabilirliğine bağlı olarak bölge için bir değer belirler.

"zones": {
  "value": "[if(not(empty(pickZones('Microsoft.Compute', 'virtualMachines', 'westus2'))), string(add(mod(copyIndex(),3),1)), json('null'))]"
},

aşağıdaki örnek, Cosmos DB için bölge yedekliliği etkinleştirmek üzere pickzones işlevinin nasıl kullanılacağını gösterir.

"resources": [
  {
    "type": "Microsoft.DocumentDB/databaseAccounts",
    "apiVersion": "2021-04-15",
    "name": "[variables('accountName_var')]",
    "location": "[parameters('location')]",
    "kind": "GlobalDocumentDB",
    "properties": {
      "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
      "locations": [
        {
          "locationName": "[parameters('primaryRegion')]",
          "failoverPriority": 0,
          "isZoneRedundant": "[if(empty(pickZones('Microsoft.Storage', 'storageAccounts', parameters('primaryRegion'))), bool('false'), bool('true'))]",
        },
        {
          "locationName": "[parameters('secondaryRegion')]",
          "failoverPriority": 1,
          "isZoneRedundant": "[if(empty(pickZones('Microsoft.Storage', 'storageAccounts', parameters('secondaryRegion'))), bool('false'), bool('true'))]",
        }
      ],
      "databaseAccountOfferType": "Standard",
      "enableAutomaticFailover": "[parameters('automaticFailover')]"
    }
  }
]

sağlayıcılarla

Sağlayıcılar işlevi kullanım dışı bırakıldı. Artık kullanılması önerilmez. Bu işlevi, kaynak sağlayıcısı için bir API sürümü almak üzere kullandıysanız, şablonunuzda belirli bir API sürümü sağlamanızı öneririz. Dinamik olarak döndürülen bir API sürümünün kullanılması, özellikler arasında değişiklik olursa şablonunuzu bozabilir.

reference

reference(resourceName or resourceIdentifier, [apiVersion], ['Full'])

Kaynağın çalışma zamanı durumunu temsil eden bir nesne döndürür.

Parametreler

Parametre Gerekli Tür Description
resourceName veya ResourceIdentifier Yes string Kaynağın adı veya benzersiz tanımlayıcısı. Geçerli şablondaki bir kaynağa başvururken, yalnızca kaynak adını parametre olarak belirtin. Daha önce dağıtılan bir kaynağa ya da kaynağın adı belirsiz olduğunda kaynak KIMLIĞI sağlayın.
apiVersion No string Belirtilen kaynağın API sürümü. Kaynak aynı şablon içinde sağlanmıyorsa Bu parametre gereklidir. Genellikle, yyyy-aa-gg biçiminde. Kaynağınız için geçerli API sürümleri için bkz. şablon başvurusu.
Tümünü No string Tam kaynak nesnesinin döndürülüp döndürülmeyeceğini belirten değer. Belirtmezseniz 'Full' , yalnızca kaynağın Özellikler nesnesi döndürülür. Tam nesne, kaynak KIMLIĞI ve konum gibi değerleri içerir.

Döndürülen değer

Her kaynak türü, başvuru işlevi için farklı özellikler döndürür. İşlev tek, önceden tanımlanmış bir biçim döndürmüyor. Ayrıca, döndürülen değer bağımsız değişkenin değerine göre farklılık gösterir 'Full' . Bir kaynak türünün özelliklerini görmek için, örnekte gösterildiği gibi çıktılar bölümünde nesnesini döndürün.

Açıklamalar

Başvuru işlevi, önceden dağıtılan bir kaynağın veya geçerli şablonda dağıtılan bir kaynağın çalışma zamanı durumunu alır. Bu makalede her iki senaryo için örnekler gösterilmektedir.

Genellikle, reference BLOB uç noktası URI 'si veya tam etki alanı adı gibi bir nesneden belirli bir değer döndürmek için işlevini kullanın.

"outputs": {
  "BlobUri": {
    "type": "string",
    "value": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))).primaryEndpoints.blob]"
  },
  "FQDN": {
    "type": "string",
    "value": "[reference(resourceId('Microsoft.Network/publicIPAddresses', parameters('ipAddressName'))).dnsSettings.fqdn]"
  }
}

'Full'Özellikler şemasının parçası olmayan kaynak değerlerine ihtiyacınız olduğunda kullanın. Örneğin, Anahtar Kasası erişim ilkeleri ayarlamak için, bir sanal makine için kimlik özelliklerini alın.

{
  "type": "Microsoft.KeyVault/vaults",
  "apiVersion": "2019-09-01",
  "name": "vaultName",
  "properties": {
    "tenantId": "[subscription().tenantId]",
    "accessPolicies": [
      {
        "tenantId": "[reference(resourceId('Microsoft.Compute/virtualMachines', variables('vmName')), '2019-03-01', 'Full').identity.tenantId]",
        "objectId": "[reference(resourceId('Microsoft.Compute/virtualMachines', variables('vmName')), '2019-03-01', 'Full').identity.principalId]",
        "permissions": {
          "keys": [
            "all"
          ],
          "secrets": [
            "all"
          ]
        }
      }
    ],
    ...

Geçerli kullanımlar

Başvuru işlevi yalnızca bir kaynak tanımı ve bir şablon ya da dağıtımın çıktılar bölümünün özelliklerinde kullanılabilir. Özellik yinelemesiile kullanıldığında, input ifadesi Resource özelliğine atandığı için başvuru işlevini kullanabilirsiniz.

Bir kopyalama döngüsünde özelliğinin değerini ayarlamak için başvuru işlevini kullanamazsınız count . Döngüdeki diğer özellikleri ayarlamak için ' i kullanabilirsiniz. Başvuru işlevi çözümlenmeden önce bu özelliğin belirlenmesi gerektiğinden, Count özelliği için başvuru engellenir.

reference list* İç içe geçmiş bir şablonun çıktılar bölümünde işlevi veya herhangi bir işlevi kullanmak için, öğesini expressionEvaluationOptions iç kapsam değerlendirmesini kullanacak şekilde ayarlamanız veya iç içe geçmiş bir şablon yerine bağlı bir bağlantı kullanmanız gerekir.

referenceİşlevini koşullu olarak dağıtılan bir kaynakta kullanırsanız, işlev, kaynak dağıtılmasa bile değerlendirilir. referenceİşlev mevcut olmayan bir kaynağa başvuruyorsa bir hata alırsınız. İşlevin if yalnızca kaynak dağıtıldığında değerlendirildiğinden emin olmak için işlevini kullanın. Koşullu olarak dağıtılan bir kaynakla IF ve Reference kullanan bir örnek şablon için IF işlevine bakın.

Örtük bağımlılık

Başvuru işlevini kullanarak, başvurulan kaynak aynı şablon içinde sağlandıysa ve kaynağa adına (kaynak KIMLIĞI değil) göre başvurduğunuzda, bir kaynağın başka bir kaynağa bağlı olduğunu örtük olarak bildirmezsiniz. Bağımlıdson özelliğini de kullanmanız gerekmez. Başvurulan kaynağın dağıtımı tamamlanana kadar işlev değerlendirilmez.

Kaynak adı veya tanımlayıcı

Aynı şablonda dağıtılan bir kaynağa başvururken kaynağın adını belirtin.

"value": "[reference(parameters('storageAccountName'))]"

Aynı şablonda dağıtılan bir kaynağa başvurulduğunda, kaynak KIMLIĞINI ve ' ı belirtin apiVersion .

"value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2018-07-01')]"

Hangi kaynağı başvurduğunuz hakkında belirsizliğe engel olmak için, tam nitelikli kaynak tanımlayıcısı sağlayabilirsiniz.

"value": "[reference(resourceId('Microsoft.Network/publicIPAddresses', parameters('ipAddressName')))]"

Bir kaynağa tam nitelikli bir başvuru oluştururken, kesimleri tür ve ad ile birleştirme sırası yalnızca iki birleştirme değildir. Bunun yerine, ad alanından sonra en az belirli bir türe/ad çiftinden en belirgin bir dizi kullanın:

{resource-provider-namespace}/{parent-resource-type}/{parent-resource-name}[/{child-resource-type}/{child-resource-name}]

Örnek:

Microsoft.Compute/virtualMachines/myVM/extensions/myExt``Microsoft.Compute/virtualMachines/extensions/myVM/myExtdoğru değil

Herhangi bir kaynak KIMLIĞININ oluşturulmasını basitleştirmek için, resourceId() işlevi yerine bu belgede açıklanan işlevleri kullanın concat() .

Yönetilen kimliği al

Azure kaynakları Için Yönetilen kimlikler , bazı kaynaklar için örtük olarak oluşturulan uzantı kaynak türleridir . Yönetilen kimlik şablonda açıkça tanımlanmadığı için, kimliğin uygulandığı kaynağa başvurmanız gerekir. FullÖrtük olarak oluşturulan kimlik de dahil olmak üzere tüm özellikleri almak için kullanın.

Bu model:

"[reference(resourceId(<resource-provider-namespace>, <resource-name>), <API-version>, 'Full').Identity.propertyName]"

Örneğin, bir sanal makineye uygulanan bir yönetilen kimliğin asıl KIMLIĞINI almak için şunu kullanın:

"[reference(resourceId('Microsoft.Compute/virtualMachines', variables('vmName')),'2019-12-01', 'Full').identity.principalId]",

Ya da bir sanal makine ölçek kümesine uygulanan bir yönetilen kimliğin kiracı KIMLIĞINI almak için şunu kullanın:

"[reference(resourceId('Microsoft.Compute/virtualMachineScaleSets',  variables('vmNodeType0Name')), 2019-12-01, 'Full').Identity.tenantId]"

Başvuru örneği

Aşağıdaki örnek bir kaynak dağıtır ve bu kaynağa başvurur.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[resourceGroup().location]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "tags": {},
      "properties": {
      }
    }
  ],
  "outputs": {
    "referenceOutput": {
      "type": "object",
      "value": "[reference(parameters('storageAccountName'))]"
    },
    "fullReferenceOutput": {
      "type": "object",
      "value": "[reference(parameters('storageAccountName'), '2021-04-01', 'Full')]"
    }
  }
}

Önceki örnekte iki nesne döndürülür. Properties nesnesi aşağıdaki biçimdedir:

{
   "creationTime": "2017-10-09T18:55:40.5863736Z",
   "primaryEndpoints": {
     "blob": "https://examplestorage.blob.core.windows.net/",
     "file": "https://examplestorage.file.core.windows.net/",
     "queue": "https://examplestorage.queue.core.windows.net/",
     "table": "https://examplestorage.table.core.windows.net/"
   },
   "primaryLocation": "southcentralus",
   "provisioningState": "Succeeded",
   "statusOfPrimary": "available",
   "supportsHttpsTrafficOnly": false
}

Tam nesne aşağıdaki biçimdedir:

{
  "apiVersion":"2021-04-01",
  "location":"southcentralus",
  "sku": {
    "name":"Standard_LRS",
    "tier":"Standard"
  },
  "tags":{},
  "kind":"Storage",
  "properties": {
    "creationTime":"2017-10-09T18:55:40.5863736Z",
    "primaryEndpoints": {
      "blob":"https://examplestorage.blob.core.windows.net/",
      "file":"https://examplestorage.file.core.windows.net/",
      "queue":"https://examplestorage.queue.core.windows.net/",
      "table":"https://examplestorage.table.core.windows.net/"
    },
    "primaryLocation":"southcentralus",
    "provisioningState":"Succeeded",
    "statusOfPrimary":"available",
    "supportsHttpsTrafficOnly":false
  },
  "subscriptionId":"<subscription-id>",
  "resourceGroupName":"functionexamplegroup",
  "resourceId":"Microsoft.Storage/storageAccounts/examplestorage",
  "referenceApiVersion":"2021-04-01",
  "condition":true,
  "isConditionTrue":true,
  "isTemplateResource":false,
  "isAction":false,
  "provisioningOperation":"Read"
}

Aşağıdaki örnek şablon, bu şablonda dağıtılan bir depolama hesabına başvurur. Depolama hesabı aynı abonelikte zaten var.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageResourceGroup": {
      "type": "string"
    },
    "storageAccountName": {
      "type": "string"
    }
  },
  "resources": [],
  "outputs": {
    "ExistingStorage": {
      "type": "object",
      "value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2021-04-01')]"
    }
  }
}

resourceGroup

ResourceGroup Scope işlevinebakın.

resourceId

resourceId([subscriptionId], [resourceGroupName], resourceType, resourceName1, [resourceName2], ...)

Bir kaynağın benzersiz tanımlayıcısını döndürür. Bu işlevi, kaynak adı belirsiz olduğunda veya aynı şablon içinde sağlanmamışsa kullanın. Döndürülen Tanımlayıcının biçimi, dağıtımın bir kaynak grubunun, aboneliğin, yönetim grubunun veya kiracının kapsamında gerçekleşmediğine göre farklılık gösterir.

Parametreler

Parametre Gerekli Tür Description
subscriptionId No dize (GUID biçiminde) Varsayılan değer geçerli abonelikte bulunur. Başka bir abonelikteki bir kaynağı almanız gerektiğinde bu değeri belirtin. Bu değeri yalnızca bir kaynak grubunun veya aboneliğin kapsamına dağıtma sırasında belirtin.
resourceGroupName No string Varsayılan değer geçerli kaynak grubudur. Başka bir kaynak grubundaki bir kaynağı almanız gerektiğinde bu değeri belirtin. Yalnızca bir kaynak grubunun kapsamına dağıtım yaparken bu değeri sağlayın.
resourceType Yes string Kaynak sağlayıcısı ad alanı dahil olmak üzere kaynak türü.
resourceName1 Yes string Kaynağın adı.
resourceName2 No string Gerekirse, sonraki kaynak adı segmenti.

Kaynak türü daha fazla kesim içerdiğinde kaynak adlarını parametre olarak eklemeye devam edin.

Döndürülen değer

Şablon bir kaynak grubunun kapsamına dağıtıldığında, kaynak KIMLIĞI aşağıdaki biçimde döndürülür:

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

Diğer dağıtım kapsamları için RESOURCEID işlevini kullanabilirsiniz, ancak KIMLIK biçimi değişir.

Bir aboneliğe dağıtım sırasında RESOURCEID kullanırsanız, kaynak KIMLIĞI aşağıdaki biçimde döndürülür:

/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

Bir yönetim grubuna veya kiracıya dağıtım sırasında RESOURCEID kullanırsanız, kaynak KIMLIĞI aşağıdaki biçimde döndürülür:

/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

Karışıklığı önlemek için, resourceId aboneliğe, yönetim grubuna veya kiracıya dağıtılan kaynaklarla çalışırken kullanmanız önerilir. Bunun yerine, kapsam için tasarlanan ID işlevini kullanın.

Abonelik düzeyi kaynaklarıIçin, subscriptionresourceıd işlevini kullanın.

Yönetim grubu düzeyi kaynaklarıiçin, bir yönetim grubunun uzantısı olarak uygulanan bir kaynağa başvurmak Için extensionresourceıd işlevini kullanın. Örneğin, bir yönetim grubuna dağıtılan özel ilke tanımları yönetim grubunun uzantılarıdır. Kiracıya dağıtılan ancak yönetim grubunuzda kullanılabilir olan kaynaklara başvurmak için Tenantresourceıd işlevini kullanın. Örneğin, yerleşik ilke tanımları, kiracı düzeyi kaynakları olarak uygulanır.

Kiracı düzeyinde kaynaklarIçin, tenantresourceıd işlevini kullanın. Kiracı düzeyinde uygulandığından, yerleşik ilke tanımları için Tenantresourceıd kullanın.

Açıklamalar

Sağladığınız parametrelerin sayısı, kaynağın bir üst veya alt kaynak olduğunu ve kaynağın aynı abonelikte veya kaynak grubunda olup olmamasına göre farklılık gösterir.

Aynı abonelik ve kaynak grubundaki bir üst kaynağın kaynak KIMLIĞINI almak için kaynağın türünü ve adını belirtin.

"[resourceId('Microsoft.ServiceBus/namespaces', 'namespace1')]"

Bir alt kaynağın kaynak KIMLIĞINI almak için, kaynak türündeki parçaların sayısına dikkat edin. Kaynak türünün her segmenti için bir kaynak adı belirtin. Segmentin adı, hiyerarşinin o parçası için var olan kaynağa karşılık gelir.

"[resourceId('Microsoft.ServiceBus/namespaces/queues/authorizationRules', 'namespace1', 'queue1', 'auth1')]"

Aynı abonelikte ancak farklı kaynak grubunda bulunan bir kaynağın kaynak KIMLIĞINI almak için, kaynak grubu adını sağlayın.

"[resourceId('otherResourceGroup', 'Microsoft.Storage/storageAccounts', 'examplestorage')]"

Farklı bir abonelik ve kaynak grubundaki bir kaynağın kaynak KIMLIĞINI almak için abonelik KIMLIĞI ve kaynak grubu adını sağlayın.

"[resourceId('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'otherResourceGroup', 'Microsoft.Storage/storageAccounts','examplestorage')]"

Genellikle, alternatif bir kaynak grubunda bir depolama hesabı veya sanal ağ kullanırken bu işlevi kullanmanız gerekir. Aşağıdaki örnek, bir dış kaynak grubundaki bir kaynağın nasıl kolayca kullanılabileceğini göstermektedir:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string"
    },
    "virtualNetworkName": {
      "type": "string"
    },
    "virtualNetworkResourceGroup": {
      "type": "string"
    },
    "subnet1Name": {
      "type": "string"
    },
    "nicName": {
      "type": "string"
    }
  },
  "variables": {
    "subnet1Ref": "[resourceId(parameters('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnet1Name'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Network/networkInterfaces",
      "apiVersion": "2021-02-01",
      "name": "[parameters('nicName')]",
      "location": "[parameters('location')]",
      "properties": {
        "ipConfigurations": [
          {
            "name": "ipconfig1",
            "properties": {
              "privateIPAllocationMethod": "Dynamic",
              "subnet": {
                "id": "[variables('subnet1Ref')]"
              }
            }
          }
        ]
      }
    }
  ]
}

Kaynak KIMLIĞI örneği

Aşağıdaki örnek, kaynak grubundaki bir depolama hesabı için kaynak KIMLIĞINI döndürür:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "sameRGOutput": {
      "type": "string",
      "value": "[resourceId('Microsoft.Storage/storageAccounts','examplestorage')]"
    },
    "differentRGOutput": {
      "type": "string",
      "value": "[resourceId('otherResourceGroup', 'Microsoft.Storage/storageAccounts','examplestorage')]"
    },
    "differentSubOutput": {
      "type": "string",
      "value": "[resourceId('11111111-1111-1111-1111-111111111111', 'otherResourceGroup', 'Microsoft.Storage/storageAccounts','examplestorage')]"
    },
    "nestedResourceOutput": {
      "type": "string",
      "value": "[resourceId('Microsoft.SQL/servers/databases', 'serverName', 'databaseName')]"
    }
  }
}

Yukarıdaki örnekten alınan çıkış varsayılan değerleri:

Ad Tür Değer
sameRGOutput Dize /Subscriptions/{Current-Sub-ID}/ResourceGroups/examplegroup/Providers/Microsoft. Depolama/storageaccounts/examplestorage
farklı, Goutput Dize /Subscriptions/{Current-Sub-ID}/ResourceGroups/otherresourcegroup/Providers/Microsoft. Depolama/storageaccounts/examplestorage
Farklıya yerleştir Dize /subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/otherResourceGroup/providers/Microsoft. Depolama/storageaccounts/examplestorage
nestedResourceOutput Dize /Subscriptions/{Current-Sub-ID}/ResourceGroups/examplegroup/Providers/Microsoft. SQL/servers/serverName/databases/databaseName

aboneliği

Bkz. abonelik kapsamı işlevi.

Subscriptionresourceıd

subscriptionResourceId([subscriptionId], resourceType, resourceName1, [resourceName2], ...)

Abonelik düzeyinde dağıtılan bir kaynak için benzersiz tanımlayıcıyı döndürür.

Parametreler

Parametre Gerekli Tür Description
subscriptionId No string (GUID biçiminde) Varsayılan değer geçerli aboneliktir. Başka bir abonelikte kaynak almak için bu değeri belirtin.
resourceType Yes string Kaynak sağlayıcısı ad alanı da dahil olmak üzere kaynak türü.
resourceName1 Yes string Kaynağın adı.
resourceName2 No string Gerekirse sonraki kaynak adı segmenti.

Kaynak türü daha fazla segment içeriyor olduğunda parametre olarak kaynak adlarını eklemeye devam edin.

Döndürülen değer

Tanımlayıcı aşağıdaki biçimde döndürülür:

/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

Açıklamalar

Kaynak grubu yerine aboneliğe dağıtılan kaynakların kaynak kimliğini almak için bu işlevi kullanırsınız. Döndürülen kimlik, kaynak grubu değeri dahil değil resourceId işlevi tarafından döndürülen değerden farklıdır.

subscriptionResourceID örneği

Aşağıdaki şablon yerleşik bir rol atar. Bunu bir kaynak grubuna veya aboneliğe dağıtabilirsiniz. Yerleşik subscriptionResourceId rollerin kaynak kimliğini almak için işlevini kullanır.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "principalId": {
      "type": "string",
      "metadata": {
        "description": "The principal to assign the role to"
      }
    },
    "builtInRoleType": {
      "type": "string",
      "allowedValues": [
        "Owner",
        "Contributor",
        "Reader"
      ],
      "metadata": {
        "description": "Built-in role to assign"
      }
    },
    "roleNameGuid": {
      "type": "string",
      "defaultValue": "[newGuid()]",
      "metadata": {
        "description": "A new GUID used to identify the role assignment"
      }
    }
  },
  "variables": {
    "Owner": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]",
    "Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
    "Reader": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')]"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/roleAssignments",
      "apiVersion": "2020-10-01-preview",
      "name": "[parameters('roleNameGuid')]",
      "properties": {
        "roleDefinitionId": "[variables(parameters('builtInRoleType'))]",
        "principalId": "[parameters('principalId')]"
      }
    }
  ]
}

tenantResourceId

tenantResourceId(resourceType, resourceName1, [resourceName2], ...)

Kiracı düzeyinde dağıtılan bir kaynağın benzersiz tanımlayıcısını döndürür.

Parametreler

Parametre Gerekli Tür Description
resourceType Yes string Kaynak sağlayıcısı ad alanı da dahil olmak üzere kaynak türü.
resourceName1 Yes string Kaynağın adı.
resourceName2 No string Gerekirse sonraki kaynak adı segmenti.

Kaynak türü daha fazla segment içeriyor olduğunda parametre olarak kaynak adlarını eklemeye devam edin.

Döndürülen değer

Tanımlayıcı aşağıdaki biçimde döndürülür:

/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

Açıklamalar

Kiracıya dağıtılan bir kaynağın kaynak kimliğini almak için bu işlevi kullanırsiniz. Döndürülen kimlik, kaynak grubu veya abonelik değerlerini dahil etmeerek diğer kaynak kimliği işlevleri tarafından döndürülen değerlerden farklıdır.

tenantResourceId örneği

Yerleşik ilke tanımları kiracı düzeyinde kaynaklardır. Yerleşik ilke tanımına başvurulan bir ilke ataması dağıtmak için işlevini tenantResourceId kullanın.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "policyDefinitionID": {
      "type": "string",
      "defaultValue": "0a914e76-4921-4c19-b460-a2d36003525a",
      "metadata": {
        "description": "Specifies the ID of the policy definition or policy set definition being assigned."
      }
    },
    "policyAssignmentName": {
      "type": "string",
      "defaultValue": "[guid(parameters('policyDefinitionID'), resourceGroup().name)]",
      "metadata": {
        "description": "Specifies the name of the policy assignment, can be used defined or an idempotent name as the defaultValue provides."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/policyAssignments",
      "name": "[parameters('policyAssignmentName')]",
      "apiVersion": "2020-09-01",
      "properties": {
        "scope": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)]",
        "policyDefinitionId": "[tenantResourceId('Microsoft.Authorization/policyDefinitions', parameters('policyDefinitionID'))]"
      }
    }
  ]
}

Sonraki adımlar