Functions for use with Azure Blueprints

Important

Azure Blueprints (Önizleme) 31 Ocak 2027'de emekliye ayrılacak ve aşamalı emeklilik 31 Temmuz 2026'dan başlayacak. Mevcut blueprint tanımlarınızı ve atamalarınızı Dağıtım Yığınlarına (önerilir ) ve Şablon Özelliklerine taşıyın. Blueprint artefaktları, dağıtım yığınlarını tanımlamak için kullanılan ARM JSON şablonlarına veya Bicep dosyalarına dönüştürülür. Tam aşamalı zaman çizelgesi, etki ve SSS için Azure Blueprints emekliliği veya https://aka.ms/AzureBlueprintsRetirement. Bir yapıtı ARM kaynağı olarak yazmayı öğrenmek için bkz:

Azure Blueprints, blueprint tanımını daha dinamik hale getiren fonksiyonlar sağlar. Bu fonksiyonlar, blueprint tanımları ve blueprint artefaktları için kullanılır. Azure Resource Manager Template (ARM template) artefaktı, Resource Manager fonksiyonlarının tam kullanımını destekler ve blueprint parametresi aracılığıyla dinamik bir değer elde eder.

Aşağıdaki işlevler desteklenir:

artifacts

artifacts(artifactName)

O blueprint artefaktlarının çıktılarıyla doldurulmuş bir özellik nesnesini döndürür.

Note

Fonksiyon artifacts() bir ARM Şablonu içinden kullanılamaz. Bu fonksiyon yalnızca blueprint tanımı JSON'da veya Azure PowerShell veya REST API ile Blueprints-as-code kapsamında blueprint yönetirken kullanılabilir.

Parametreler

Parametre Required Türü Description
artifactName Yes string Bir taslak eserinin adı.

Dönüş değeri

Çıkış özelliklerine sahip bir nesne. Çıktının özellikleri, referans verilen blueprint artefaktının türüne bağlıdır. Tüm tipler şu formatı takip eder:

{
  "outputs": {collectionOfOutputProperties}
}

Politika ataması artefaktı

{
    "outputs": {
        "policyAssignmentId": "{resourceId-of-policy-assignment}",
        "policyAssignmentName": "{name-of-policy-assignment}",
        "policyDefinitionId": "{resourceId-of-policy-definition}",
    }
}

ARM şablon artefaktı

Geri dönen nesnenin çıktı özellikleri ARM şablonu içinde tanımlanır ve dağıtım tarafından döndürülür.

Rol ataması artefaktı

{
    "outputs": {
        "roleAssignmentId": "{resourceId-of-role-assignment}",
        "roleDefinitionId": "{resourceId-of-role-definition}",
        "principalId": "{principalId-role-is-being-assigned-to}",
    }
}

Example

Aşağıdaki örnek çıktı özelliğini içeren myTemplateArtifact adlı bir ARM şablon artefaktı:

{
    "$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 alma örneklerinden bazıları şunlardır:

Expression Türü Value
[artifacts("myTemplateArtifact").outputs.myArray] Array ["ilk", "ikinci"]
[artifacts("myTemplateArtifact").outputs.myArray[0]] String "ilk"
[artifacts("myTemplateArtifact").outputs.myString] String "String değerim"
[artifacts("myTemplateArtifact").outputs.myObject] Nesne { "myproperty": "değerim", "anotherProperty": doğru }
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] String "değerim"
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] Boole True

concat

concat(string1, string2, string3, ...)

Birden fazla dize değerini birleştirir ve birleştirilmiş diziyi döndürür.

Parametreler

Parametre Required Türü Description
dize1 Yes string Birleştirme için ilk değer.
ek bağımsız değişkenler Hayır string Bağlama için sıralı sırayla ek değerler

Dönüş değeri

Birleştirilmiş değerler dizisi.

Remarks

Azure Blueprints fonksiyonu, ARM şablon fonksiyonundan sadece dizilerle çalışması bakımından farklıdır.

Example

concat(parameters('organizationName'), '-vm')

parameters

parameters(parameterName)

Bir blueprint parametre değeri döndürür. Belirtilen parametre adı, blueprint tanımında veya blueprint artefaktlarında tanımlanmalıdır.

Parametreler

Parametre Required Türü Description
parametre adı Yes string Döndürülecek parametrenin adı.

Dönüş değeri

Belirtilen blueprint veya blueprint artefakt parametresinin değeri.

Remarks

Azure Blueprints fonksiyonu, ARM şablon fonksiyonundan yalnızca blueprint parametreleriyle çalışması bakımından farklıdır.

Example

Blueprint tanımında principalIds parametresini 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"
                }
            }
        },
        ...
    }
}

Sonra bir blueprint artefaktında principalIds argümanı 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()

Mevcut kaynak grubunu temsil eden bir nesneyi döndürür.

Dönüş değeri

Geri dönen nesne aşağıdaki formattadır:

{
  "name": "{resourceGroupName}",
  "location": "{resourceGroupLocation}",
}

Remarks

Azure Blueprints fonksiyonu, ARM şablon fonksiyonundan farklıdır. Bu resourceGroup() fonksiyon, abonelik seviyesindeki bir artefaktta veya blueprint tanımında kullanılamaz. Yalnızca bir kaynak grubunun parçası olan blueprint eserlerinde kullanılabilir.

Fonksiyonun resourceGroup() yaygın bir kullanımı, kaynak grubu artefaktının bulunduğu aynı konumda kaynak oluşturmaktır.

Example

Kaynak grubunun konumunu, ya blueprint tanımında ya da atama sırasında başka bir eser için konum olarak kullanmak için, blueprint tanımınızda bir kaynak grubu yer tutucu nesnesi ilan edin. Bu örnekte, NetworkingPlaceholder kaynak grubu yer tutucusunun adıdır.

{
    "type": "Microsoft.Blueprint/blueprints",
    "properties": {
        ...
        "resourceGroups": {
            "NetworkingPlaceholder": {
                "location": "eastus"
            }
        }
    }
}

Daha sonra fonksiyonu resourceGroup() , bir kaynak grubu yer tutucu nesnesini hedefleyen bir blueprint artefaktı bağlamında kullanın. Bu örnekte, şablon artefaktı NetworkingPlaceholder kaynak grubuna dağıtılır ve şablona NetworkingPlaceholder kaynak grubu konumuyla dinamik olarak doldurulmuş resourceLocation parametresi sağlar. NetworkingPlaceholder kaynak grubunun konumu, taslak tanımında statik olarak tanımlanabilir veya atama sırasında dinamik olarak tanımlanabilir. Her iki durumda da, şablon artefaktı bu bilgi bir parametre olarak sağlanır 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 artefaktını temsil eden bir nesneyi döndürür. resourceGroup()Farklı olarak, bu fonksiyon artefaktın bağlamını gerektirirken, bu fonksiyon belirli bir kaynak grubunun yer tutucusunun özelliklerini elde etmek için kullanılır; bu fonksiyon o kaynak grubunun bağlamında olmadıklarında kullanılır.

Parametreler

Parametre Required Türü Description
Yer tutucuAdı Yes string Kaynak grubunun geri dönecek eserinin yer tutucu adı.

Dönüş değeri

Geri dönen nesne aşağıdaki formattadır:

{
  "name": "{resourceGroupName}",
  "location": "{resourceGroupLocation}",
}

Example

Kaynak grubunun konumunu, ya blueprint tanımında ya da atama sırasında başka bir eser için konum olarak kullanmak için, blueprint tanımınızda bir kaynak grubu yer tutucu nesnesi ilan edin. Bu örnekte, NetworkingPlaceholder kaynak grubu yer tutucusunun adıdır.

{
    "type": "Microsoft.Blueprint/blueprints",
    "properties": {
        ...
        "resourceGroups": {
            "NetworkingPlaceholder": {
                "location": "eastus"
            }
        }
    }
}

Sonra, herhangi bir blueprint artefaktının bağlamından bu resourceGroups() fonksiyonu kullanarak kaynak grubu yer tutucu nesnesine bir referans alın. Bu örnekte, şablon artefaktı NetworkingPlaceholder kaynak grubunun dışına yerleştirilir ve şablona NetworkingPlaceholder kaynak grubu konumuyla dinamik olarak doldurulmuş parametre artefakt sağlar. NetworkingPlaceholder kaynak grubunun konumu, taslak tanımında statik olarak tanımlanabilir veya atama sırasında dinamik olarak tanımlanabilir. Her iki durumda da, şablon artefaktı bu bilgi bir parametre olarak sağlanır 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"
}

subscription

subscription()

Mevcut taslak görevi için abonelik detaylarını geri döndürür.

Dönüş değeri

Geri dönen nesne aşağıdaki formattadır:

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

Example

Aboneliğin görüntü adını ve concat() şablon artefaktına parametre olarak iletilen bir adlandırma düzenlemesi oluşturma fonksiyonunu kullanın.

{
  "kind": "template",
  "properties": {
      "template": {
          ...
      },
      ...
      "parameters": {
        "resourceName": {
          "value": "[concat(subscription().displayName, '-vm')]"
        }
      }
  },
  "type": "Microsoft.Blueprint/blueprints/artifacts",
  "name": "myTemplate"
}

Sonraki Adımlar