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
- Ş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.