Azure Blueprints ile kullanım işlevleri

Azure Blueprints şema tanımını daha dinamik hale yapan işlevler sağlar. Bu işlevler şema tanımları ve şema yapıtları ile kullanılabilir. Bir Azure Resource Manager Şablonu (ARM şablonu) yapıt, şema Resource Manager dinamik değer elde etmeye ek olarak Resource Manager işlevlerinin tam olarak kullanımını destekler.

Aşağıdaki işlevler de desteklemektedir:

Yapı

artifacts(artifactName)

Bu şema yapıtları çıkışları ile doldurulmuş özellikler nesnesini döndürür.

Not

İşlev artifacts() arm şablonunun içinden kullanılamaz. İşlev, şemayı kod olarak Şemalar'ın bir parçası olarak Azure PowerShell veya REST API şemayla yöneterek JSON şema tanımında veya yapıt JSON'da 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şvurulan şema yapıt türüne bağlıdır. Tüm türler şu biçimdedir:

{
  "outputs": {collectionOfOutputProperties}
}

İlke ataması 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 şablonunda 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 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 örnek olarak şu örnekler verilmiştir:

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 "my value" (değerim)
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] Bool Doğru

concat

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

Birden çok dize değeri birleştirir ve birleştirilmiş dizeyi döndürür.

Parametreler

Parametre Gerekli Tür Description
string1 Yes string Concatenation için ilk değer.
ek bağımsız değişkenler No string Concatenation için sıralı olarak ek değerler

Döndürülen değer

Birlenmiş değer dizesi.

Açıklamalar

Bu Azure Blueprints işlevi ARM şablonu işlevinden farklıdır ve yalnızca dizelerle çalışır.

Örnek

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

parameters

parameters(parameterName)

Şema parametresi 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 İade etmek istediğiniz parametrenin adı.

Döndürülen değer

Belirtilen şema veya şema yapıt parametresinin değeri.

Açıklamalar

Bu Azure Blueprints arm şablonu 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 principalId'leri şema parameters() yapıtının bağımsız değişkeni 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 aşağıdaki biçimdedir:

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

Açıklamalar

İşlevin Azure Blueprints ARM şablonu işlevinden farklıdır. İşlev, resourceGroup() abonelik düzeyinde yapıt veya şema tanımında kullanılamaz. Yalnızca kaynak grubu yapıtlarının parçası olan şema yapıtlarında kullanılabilir.

işlevinin yaygın bir resourceGroup() kullanımı, kaynak grubu yapıt ile aynı konumda kaynak oluşturmaktır.

Örnek

Kaynak grubunun konumunu kullanmak için, başka bir yapıtın konumu olarak, şema tanımında veya atama sırasında ayarlayın, ş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, resourceGroup() bir kaynak grubu yer tutucu nesnesini hedefleyen bir şema yapıtı bağlamında işlevini kullanın. Bu örnekte, şablon yapıtı Networkingplaceholder kaynak grubuna dağıtılır ve bu parametre ResourceLocation ' ı dinamik olarak, bir şablon için networkingplaceholder kaynak grubu konumuyla doldurulmuş olarak sunar. 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. resourceGroup()Yapıt bağlamını gerektiren aksine, bu işlev, kaynak grubunun bağlamında olmayan 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ı için yer tutucu adı.

Döndürülen değer

Döndürülen nesne aşağıdaki biçimdedir:

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

Örnek

Kaynak grubunun konumunu kullanmak için, başka bir yapıtın konumu olarak, şema tanımında veya atama sırasında ayarlayın, ş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, resourceGroups() kaynak grubu yer tutucu nesnesine bir başvuru almak için herhangi bir şema yapıtı bağlamından işlevini kullanın. Bu örnekte, şablon yapıtı Networkingplaceholder kaynak grubunun dışında dağıtılır ve bir artifactlocation parametresi ile networkingplaceholder kaynak grubu konumu ile dinamik olarak doldurulmuş bir parametre sağlar. 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ının abonelik hakkındaki ayrıntıları döndürür.

Döndürülen değer

Döndürülen nesne aşağıdaki biçimdedir:

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

Örnek

concat()Şablon yapıtı Için resourceName parametresi olarak geçirilen bir adlandırma kuralı oluşturmak için aboneliğin görünen adını ve 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