Azure Blueprints ile kullanım işlevleri
Önemli
11 Temmuz 2026'da Blueprints (Önizleme) kullanım dışı bırakılacaktır. Mevcut şema tanımlarınızı ve atamalarınızı Şablon Belirtimleri ve Dağıtım Yığınları'na geçirin. Şema yapıtları, dağıtım yığınlarını tanımlamak için kullanılan ARM JSON şablonlarına veya Bicep dosyalarına dönüştürülecek. Yapıtı ARM kaynağı olarak yazmayı öğrenmek için bkz:
Azure Blueprints, şema tanımını daha dinamik hale getirmek için işlevler sağlar. Bu işlevler şema tanımları ve şema yapıtları ile birlikte kullanılır. Azure Resource Manager Şablonu (ARM şablonu) yapıtı, şema parametresi aracılığıyla dinamik bir değer almaya ek olarak Resource Manager işlevlerinin tam kullanımını destekler.
Aşağıdaki işlevler desteklenir:
Yapı
artifacts(artifactName)
Bu şema yapıtlarının çıkışlarıyla doldurulmuş bir özellik nesnesi döndürür.
Not
artifacts()
İşlev arm şablonunun içinden kullanılamaz. İşlev, şemayı kod olarak şemanın bir parçası olarak Azure PowerShell veya REST API ile yönetirken yalnızca şema tanımı JSON'unda veya yapıt JSON'unda kullanılabilir.
Parametreler
Parametre | Gerekli | Tür | Description |
---|---|---|---|
artifactName | Yes | string | Şema yapıtı adı. |
Döndürülen değer
Çıkış özelliklerinin nesnesi. Çıkış özellikleri, başvurulmakta olan şema yapıtı türüne bağlıdır. Tüm türler şu biçimi izler:
{
"outputs": {collectionOfOutputProperties}
}
İlke atama yapıtı
{
"outputs": {
"policyAssignmentId": "{resourceId-of-policy-assignment}",
"policyAssignmentName": "{name-of-policy-assignment}",
"policyDefinitionId": "{resourceId-of-policy-definition}",
}
}
ARM şablonu yapıtı
Döndürülen nesnenin çıkış özellikleri ARM şablonu içinde tanımlanır ve dağıtım tarafından döndürülür.
Rol ataması yapıtı
{
"outputs": {
"roleAssignmentId": "{resourceId-of-role-assignment}",
"roleDefinitionId": "{resourceId-of-role-definition}",
"principalId": "{principalId-role-is-being-assigned-to}",
}
}
Örnek
Aşağıdaki örnek çıkış özelliğini içeren myTemplateArtifact kimliğine sahip bir ARM şablonu yapıtı:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
...
"outputs": {
"myArray": {
"type": "array",
"value": ["first", "second"]
},
"myString": {
"type": "string",
"value": "my string value"
},
"myObject": {
"type": "object",
"value": {
"myProperty": "my value",
"anotherProperty": true
}
}
}
}
myTemplateArtifact örneğinden veri almaya bazı örnekler şunlardır:
Expression | Tür | Değer |
---|---|---|
[artifacts("myTemplateArtifact").outputs.myArray] |
Dizi | ["first", "second"] |
[artifacts("myTemplateArtifact").outputs.myArray[0]] |
Dize | "ilk" |
[artifacts("myTemplateArtifact").outputs.myString] |
Dize | "dize değerim" |
[artifacts("myTemplateArtifact").outputs.myObject] |
Nesne | { "myproperty": "my value", "anotherProperty": true } |
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] |
Dize | "değerim" |
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] |
Bool | Doğru |
concat
concat(string1, string2, string3, ...)
Birden çok dize değerini birleştirir ve birleştirilmiş dizeyi döndürür.
Parametreler
Parametre | Gerekli | Tür | Description |
---|---|---|---|
dize1 | Yes | string | Birleştirme için ilk değer. |
ek bağımsız değişkenler | No | string | Birleştirme için sıralı sırada ek değerler |
Döndürülen değer
Birleştirilmiş değerler dizesi.
Açıklamalar
Azure Blueprints işlevi ARM şablon işlevinden farklıdır ve yalnızca dizelerle çalışır.
Örnek
concat(parameters('organizationName'), '-vm')
parameters
parameters(parameterName)
Şema parametre değeri döndürür. Belirtilen parametre adı şema tanımında veya şema yapıtlarında tanımlanmalıdır.
Parametreler
Parametre | Gerekli | Tür | Description |
---|---|---|---|
Parametername | Yes | string | Döndürülecek parametrenin adı. |
Döndürülen değer
Belirtilen şemanın veya şema yapıt parametresinin değeri.
Açıklamalar
Azure Blueprints işlevi ARM şablon işlevinden farklıdır ve yalnızca şema parametreleriyle çalışır.
Örnek
Şema tanımında parametre principalId'lerini tanımlayın:
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"parameters": {
"principalIds": {
"type": "array",
"metadata": {
"displayName": "Principal IDs",
"description": "This is a blueprint parameter that any artifact can reference. We'll display these descriptions for you in the info bubble. Supply principal IDs for the users,groups, or service principals for the Azure role assignment.",
"strongType": "PrincipalId"
}
}
},
...
}
}
Ardından principalIds öğesini şema yapıtında bağımsız değişkeni parameters()
olarak kullanın:
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "roleAssignment",
...
"properties": {
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
"principalIds": "[parameters('principalIds')]",
...
}
}
resourceGroup
resourceGroup()
Geçerli kaynak grubunu temsil eden bir nesne döndürür.
Döndürülen değer
Döndürülen nesne şu biçimdedir:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Açıklamalar
Azure Blueprints işlevi ARM şablon işlevinden farklıdır. İşlev abonelik resourceGroup()
düzeyi yapıtında veya şema tanımında kullanılamaz. Yalnızca bir kaynak grubu yapıtının parçası olan şema yapıtlarında kullanılabilir.
işlevinin resourceGroup()
yaygın kullanımlarından biri, kaynak grubu yapıtıyla aynı konumda kaynak oluşturmaktır.
Örnek
Şema tanımında veya atama sırasında başka bir yapıtın konumu olarak ayarlanan kaynak grubunun konumunu kullanmak için şema tanımınızda bir kaynak grubu yer tutucu nesnesi bildirin. Bu örnekte , NetworkingPlaceholder kaynak grubu yer tutucusunun adıdır.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Ardından işlevi, kaynak grubu yer tutucu nesnesini hedefleyen bir şema yapıtı bağlamında kullanın resourceGroup()
. Bu örnekte, şablon yapıtı NetworkingPlaceholder kaynak grubuna dağıtılır ve resourceLocation parametresini şablonun NetworkingPlaceholder kaynak grubu konumuyla dinamik olarak doldurur.
NetworkingPlaceholder kaynak grubunun konumu şema tanımında statik olarak tanımlanmış veya atama sırasında dinamik olarak tanımlanmış olabilir. Her iki durumda da şablon yapıtı bu bilgileri parametre olarak sağlar ve kaynakları doğru konuma dağıtmak için kullanır.
{
"type": "Microsoft.Blueprint/blueprints/artifacts",
"kind": "template",
"properties": {
"template": {
...
},
"resourceGroup": "NetworkingPlaceholder",
...
"parameters": {
"resourceLocation": {
"value": "[resourceGroup().location]"
}
}
}
}
resourceGroups
resourceGroups(placeholderName)
Belirtilen kaynak grubu yapıtını temsil eden bir nesne döndürür. Yapıtın bağlamını gerektiren işlevinin aksine resourceGroup()
, bu işlev söz konusu kaynak grubu bağlamında olmadığında belirli bir kaynak grubu yer tutucusunun özelliklerini almak için kullanılır.
Parametreler
Parametre | Gerekli | Tür | Description |
---|---|---|---|
placeholderName | Yes | string | Döndürülecek kaynak grubu yapıtı yer tutucu adı. |
Döndürülen değer
Döndürülen nesne şu biçimdedir:
{
"name": "{resourceGroupName}",
"location": "{resourceGroupLocation}",
}
Örnek
Şema tanımında veya atama sırasında başka bir yapıtın konumu olarak ayarlanan kaynak grubunun konumunu kullanmak için şema tanımınızda bir kaynak grubu yer tutucu nesnesi bildirin. Bu örnekte , NetworkingPlaceholder kaynak grubu yer tutucusunun adıdır.
{
"type": "Microsoft.Blueprint/blueprints",
"properties": {
...
"resourceGroups": {
"NetworkingPlaceholder": {
"location": "eastus"
}
}
}
}
Ardından kaynak grubu yer tutucu nesnesine başvuru almak için herhangi bir şema yapıtı bağlamındaki işlevini kullanın resourceGroups()
. Bu örnekte, şablon yapıtı NetworkingPlaceholder kaynak grubunun dışına dağıtılır ve artifactLocation parametresini şablonun NetworkingPlaceholder kaynak grubu konumuyla dinamik olarak doldurur.
NetworkingPlaceholder kaynak grubunun konumu şema tanımında statik olarak tanımlanmış veya atama sırasında dinamik olarak tanımlanmış olabilir. Her iki durumda da şablon yapıtı bu bilgileri parametre olarak sağlar ve kaynakları doğru konuma dağıtmak için kullanır.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"artifactLocation": {
"value": "[resourceGroups('NetworkingPlaceholder').location]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
aboneliği
subscription()
Geçerli şema ataması için abonelikle ilgili ayrıntıları döndürür.
Döndürülen değer
Döndürülen nesne şu biçimdedir:
{
"id": "/subscriptions/{subscriptionId}",
"subscriptionId": "{subscriptionId}",
"tenantId": "{tenantId}",
"displayName": "{name-of-subscription}"
}
Örnek
ResourceName parametresi olarak şablon yapıtına geçirilen bir adlandırma kuralı oluşturmak için aboneliğin görünen adını ve concat()
işlevini kullanın.
{
"kind": "template",
"properties": {
"template": {
...
},
...
"parameters": {
"resourceName": {
"value": "[concat(subscription().displayName, '-vm')]"
}
}
},
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
Sonraki adımlar
- Şema yaşam döngüsü hakkında bilgi edinin.
- Statik ve dinamik parametrelerin kullanımını anlayın.
- Şema sıralama düzenini özelleştirmeyi öğrenin.
- Şema kaynak kilitleme özelliğini kullanmayı öğrenin.
- Mevcut atamaları güncelleştirmeyi öğrenin.
- Genel sorun giderme adımlarıyla şema atama sorunlarını giderin.