Azure şemaları ile kullanım için işlevlerFunctions for use with Azure Blueprints

Azure şemaları, bir şema tanımını daha dinamik hale getiren işlevler sağlar.Azure Blueprints provides functions making a blueprint definition more dynamic. Bu işlevler, şema tanımları ve şema yapıtları ile kullanım içindir.These functions are for use with blueprint definitions and blueprint artifacts. Kaynak Yöneticisi Şablon yapıtı, bir şema parametresi aracılığıyla dinamik bir değer almaya ek olarak Kaynak Yöneticisi işlevlerinin tam kullanımını destekler.A Resource Manager Template artifact supports the full use of Resource Manager functions in addition to getting a dynamic value through a blueprint parameter.

Aşağıdaki işlevler desteklenir:The following functions are supported:

artifactsartifacts

artifacts(artifactName)

Bu şema yapıtları çıkışları ile doldurulmuş özelliklerin bir nesnesini döndürür.Returns an object of properties populated with that blueprint artifacts outputs.

ParametrelerParameters

ParametreParameter GerekliRequired TürType AçıklamaDescription
artifactNameartifactName YesYes stringstring Şema yapıtı adı.The name of a blueprint artifact.

Dönüş değeriReturn value

Çıkış özelliklerinin nesnesi.An object of output properties. Çıktılar özellikleri, başvurulmakta olan şema yapıtı türüne bağlıdır.The outputs properties are dependent on the type of blueprint artifact being referenced. Tüm türler şu biçimdedir:All types follow the format:

{
  "outputs": {collectionOfOutputProperties}
}

İlke atama yapıtıPolicy assignment artifact

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

Şablon yapıtı Kaynak YöneticisiResource Manager template artifact

Döndürülen nesnenin Çıkış özellikleri kaynak yöneticisi şablonu içinde tanımlanır ve dağıtım tarafından döndürülür.The outputs properties of the returned object are defined within the Resource Manager template and returned by the deployment.

Rol atama yapıtıRole assignment artifact

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

ÖrnekExample

Aşağıdaki örnek çıktı özelliğini içeren Mytemplateyapıt kimlikli bir kaynak yöneticisi şablonu yapıtı:A Resource Manager template artifact with the ID myTemplateArtifact containing the following sample output property:

{
    "$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
            }
        }
    }
}

Mytemplateyapıt örneğinden veri almaya ilişkin bazı örnekler şunlardır:Some examples of retrieving data from the myTemplateArtifact sample are:

İfadelerExpression TürType DeğerValue
[artifacts("myTemplateArtifact").outputs.myArray] DiziArray ["First", "Second"]["first", "second"]
[artifacts("myTemplateArtifact").outputs.myArray[0]] DizeString adı"first"
[artifacts("myTemplateArtifact").outputs.myString] DizeString "dize değeri""my string value"
[artifacts("myTemplateArtifact").outputs.myObject] NesneObject {"MyProperty": "My value", "anotherProperty": true}{ "myproperty": "my value", "anotherProperty": true }
[artifacts("myTemplateArtifact").outputs.myObject.myProperty] DizeString "My value""my value"
[artifacts("myTemplateArtifact").outputs.myObject.anotherProperty] BoolBool TrueTrue

Concatconcat

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

Birden çok dize değerini birleştirir ve birleştirilmiş dizeyi döndürür.Combines multiple string values and returns the concatenated string.

ParametrelerParameters

ParametreParameter GerekliRequired TürType AçıklamaDescription
string1string1 YesYes stringstring Birleştirme için ilk değer.The first value for concatenation.
ek bağımsız değişkenleradditional arguments HayırNo stringstring Birleştirme için ek değerler sıralı sıradaAdditional values in sequential order for concatenation

Dönüş değeriReturn value

Art arda eklenmiş değerlerin dizesi.A string of concatenated values.

AçıklamalarRemarks

Azure Blueprint işlevi, Azure Resource Manager şablonu işlevinden farklıdır ve yalnızca dizelerle çalışır.The Azure Blueprint function differs from the Azure Resource Manager template function in that it only works with strings.

ÖrnekExample

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

parametrelerparameters

parameters(parameterName)

Bir şema parametre değeri döndürür.Returns a blueprint parameter value. Belirtilen parametre adı, şema tanımında veya şema yapıtlarının içinde tanımlanmalıdır.The specified parameter name must be defined in the blueprint definition or in blueprint artifacts.

ParametrelerParameters

ParametreParameter GerekliRequired TürType AçıklamaDescription
parameterNameparameterName YesYes stringstring Döndürülecek parametrenin adı.The name of the parameter to return.

Dönüş değeriReturn value

Belirtilen şema veya şema yapıt parametresinin değeri.The value of the specified blueprint or blueprint artifact parameter.

AçıklamalarRemarks

Azure Blueprint işlevi, Azure Resource Manager şablonu işlevinden farklıdır ve yalnızca şema parametreleriyle çalışır.The Azure Blueprint function differs from the Azure Resource Manager template function in that it only works with blueprint parameters.

ÖrnekExample

Şema tanımında parametre prenileri tanımlayın:Define parameter principalIds in the blueprint definition:

{
    "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 RBAC assignment.",
                    "strongType": "PrincipalId"
                }
            }
        },
        ...
    }
}

Ardından, şema yapıtında parameters() için bağımsız değişken olarak prenler kullanın:Then use principalIds as the argument for parameters() in a blueprint artifact:

{
    "type": "Microsoft.Blueprint/blueprints/artifacts",
    "kind": "roleAssignment",
    ...
    "properties": {
        "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
        "principalIds": "[parameters('principalIds')]",
        ...
    }
}

resourceGroupresourceGroup

resourceGroup()

Geçerli kaynak grubunu temsil eden bir nesne döndürür.Returns an object that represents the current resource group.

Dönüş değeriReturn value

Döndürülen nesne aşağıdaki biçimdedir:The returned object is in the following format:

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

AçıklamalarRemarks

Azure Blueprint işlevi Azure Resource Manager şablonu işlevinden farklıdır.The Azure Blueprint function differs from the Azure Resource Manager template function. resourceGroup() işlevi, abonelik düzeyindeki yapıt veya şema tanımında kullanılamaz.The resourceGroup() function can't be used in a subscription level artifact or the blueprint definition. Yalnızca bir kaynak grubu yapısının parçası olan şema yapıtları için kullanılabilir.It can only be used in blueprint artifacts that are part of a resource group artifact.

resourceGroup() işlevinin yaygın kullanımı, kaynak grubu yapıtı ile aynı konumda kaynak oluşturmaktır.A common use of the resourceGroup() function is to create resources in the same location as the resource group artifact.

ÖrnekExample

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.To use the resource group's location, set in either the blueprint definition or during assignment, as the location for another artifact, declare a resource group placeholder object in your blueprint definition. Bu örnekte Networkingplaceholder , kaynak grubu yer tutucusunun adıdır.In this example, NetworkingPlaceholder is the name of the resource group placeholder.

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

Ardından, bir kaynak grubu yer tutucu nesnesini hedefleyen bir şema yapıtı bağlamında resourceGroup() işlevini kullanın.Then use the resourceGroup() function in the context of a blueprint artifact that is targeting a resource group placeholder object. 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.In this example, the template artifact is deployed into the NetworkingPlaceholder resource group and provides parameter resourceLocation dynamically populated with the NetworkingPlaceholder resource group location to the template. Networkingplaceholder kaynak grubunun konumu, şema tanımında statik olarak tanımlanmış veya atama sırasında dinamik olarak tanımlanmış olabilir.The location of the NetworkingPlaceholder resource group could have been statically defined on the blueprint definition or dynamically defined during assignment. Her iki durumda da şablon yapıtı, bu bilgileri parametre olarak sağlar ve kaynakları doğru konuma dağıtmak için kullanır.In either case, the template artifact is provided that information as a parameter and uses it to deploy the resources to the correct location.

{
  "type": "Microsoft.Blueprint/blueprints/artifacts",
  "kind": "template",
  "properties": {
      "template": {
        ...
      },
      "resourceGroup": "NetworkingPlaceholder",
      ...
      "parameters": {
        "resourceLocation": {
          "value": "[resourceGroup().location]"
        }
      }
  }
}

resourceGroupsresourceGroups

resourceGroups(placeholderName)

Belirtilen kaynak grubu yapıtını temsil eden bir nesne döndürür.Returns an object that represents the specified resource group artifact. Yapıtın bağlamını gerektiren resourceGroup()aksine bu işlev, kaynak grubunun bağlamında olmayan belirli bir kaynak grubu yer tutucusunun özelliklerini almak için kullanılır.Unlike resourceGroup(), which requires context of the artifact, this function is used to get the properties of a specific resource group placeholder when not in context of that resource group.

ParametrelerParameters

ParametreParameter GerekliRequired TürType AçıklamaDescription
placeholderNameplaceholderName YesYes stringstring Döndürülecek kaynak grubu yapıtı için yer tutucu adı.The placeholder name of the resource group artifact to return.

Dönüş değeriReturn value

Döndürülen nesne aşağıdaki biçimdedir:The returned object is in the following format:

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

ÖrnekExample

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.To use the resource group's location, set in either the blueprint definition or during assignment, as the location for another artifact, declare a resource group placeholder object in your blueprint definition. Bu örnekte Networkingplaceholder , kaynak grubu yer tutucusunun adıdır.In this example, NetworkingPlaceholder is the name of the resource group placeholder.

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

Ardından, kaynak grubu yer tutucu nesnesine bir başvuru almak için herhangi bir şema yapıtı bağlamından resourceGroups() işlevini kullanın.Then use the resourceGroups() function from the context of any blueprint artifact to get a reference to the resource group placeholder object. 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.In this example, the template artifact is deployed outside the NetworkingPlaceholder resource group and provides parameter artifactLocation dynamically populated with the NetworkingPlaceholder resource group location to the template. Networkingplaceholder kaynak grubunun konumu, şema tanımında statik olarak tanımlanmış veya atama sırasında dinamik olarak tanımlanmış olabilir.The location of the NetworkingPlaceholder resource group could have been statically defined on the blueprint definition or dynamically defined during assignment. Her iki durumda da şablon yapıtı, bu bilgileri parametre olarak sağlar ve kaynakları doğru konuma dağıtmak için kullanır.In either case, the template artifact is provided that information as a parameter and uses it to deploy the resources to the correct location.

{
  "kind": "template",
  "properties": {
      "template": {
          ...
      },
      ...
      "parameters": {
        "artifactLocation": {
          "value": "[resourceGroups('NetworkingPlaceholder').location]"
        }
      }
  },
  "type": "Microsoft.Blueprint/blueprints/artifacts",
  "name": "myTemplate"
}

subscriptionsubscription

subscription()

Geçerli şema atamasının abonelik hakkındaki ayrıntıları döndürür.Returns details about the subscription for the current blueprint assignment.

Dönüş değeriReturn value

Döndürülen nesne aşağıdaki biçimdedir:The returned object is in the following format:

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

ÖrnekExample

Ş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 concat() işlevini kullanın.Use the subscription's display name and the concat() function to create a naming convention passed as parameter resourceName to the template artifact.

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

Sonraki adımlarNext steps