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:
- Extensionresourceıd
- Listele
- pickZones
- sağlayıcılar (kullanım dışı)
- başvurunun
- resourceId
- Subscriptionresourceıd
- Tenantresourceıd
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 OperationYalnı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
- ARM şablonunda bölümlerin açıklaması için bkz. ARM şablonlarının yapısını ve söz dizimlerini anlama.
- Birden çok şablonu birleştirmek için bkz. Azure kaynaklarını dağıtırken bağlantılı ve iç içe şablonları kullanma.
- Kaynak türü oluştururken belirtilen sayıda yineleme yapmak için bkz. ARM şablonlarında kaynak yineleme.
- Oluşturduğunuz şablonu dağıtmayı görmek için bkz. ARM şablonlarıyla kaynaklarıdağıtma ve Azure PowerShell.