Aracılığıyla paylaş


ARM şablonları için nesne işlevleri

Resource Manager, Azure Resource Manager şablonunuzdaki (ARM şablonu) nesnelerle çalışmak için çeşitli işlevler sağlar:

Tavsiye

ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep önerilir. Daha fazla bilgi edinmek için bkz. nesne işlevleri.

içerir

contains(container, itemToFind)

Dizinin bir değer, nesnenin anahtar veya dizenin alt dize içerdiğini denetler. Dize karşılaştırması büyük/küçük harfe duyarlıdır. Ancak, bir nesnenin anahtar içerip içermediğini test ederken karşılaştırma büyük/küçük harfe duyarlı değildir.

Bicep'te işlevini kullanın contains .

Parametreler

Parametre Gerekli Türü Açıklama
konteyner Evet dizi, nesne veya dize Bulunabilecek değeri içeren değer.
itemToFind Evet dize veya int Bulunacak değer.

Dönüş değeri

Öğe bulunursa True , değilse False.

Örnek

Aşağıdaki örnekte farklı türlerle nasıl kullanılacağı contains gösterilmektedir:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringToTest": {
      "type": "string",
      "defaultValue": "OneTwoThree"
    },
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "stringTrue": {
      "type": "bool",
      "value": "[contains(parameters('stringToTest'), 'e')]"
    },
    "stringFalse": {
      "type": "bool",
      "value": "[contains(parameters('stringToTest'), 'z')]"
    },
    "objectTrue": {
      "type": "bool",
      "value": "[contains(parameters('objectToTest'), 'one')]"
    },
    "objectFalse": {
      "type": "bool",
      "value": "[contains(parameters('objectToTest'), 'a')]"
    },
    "arrayTrue": {
      "type": "bool",
      "value": "[contains(parameters('arrayToTest'), 'three')]"
    },
    "arrayFalse": {
      "type": "bool",
      "value": "[contains(parameters('arrayToTest'), 'four')]"
    }
  }
}

Önceki örnekteki varsayılan değerlerin çıkışı:

İsim Türü Değer
stringTrue Boole Doğru
stringFalse Boole Yanlış
objectTrue Boole Doğru
objectFalse Boole Yanlış
arrayTrue Boole Doğru
arrayFalse Boole Yanlış

createObject

createObject(key1, value1, key2, value2, ...)

Anahtarlardan ve değerlerden bir nesne oluşturur.

createObject İşlev Bicep tarafından desteklenmez. kullanarak {}bir nesne oluşturma. Bkz . Nesneler.

Parametreler

Parametre Gerekli Türü Açıklama
anahtar1 Hayı String Anahtarın adı.
değer1 Hayı int, boole, dize, nesne veya dizi Anahtarın değeri.
diğer tuşlar Hayı String Anahtarların daha fazla adı.
daha fazla değer Hayı int, boole, dize, nesne veya dizi Anahtarlar için daha fazla değer.

işlevi yalnızca çift sayıda parametre kabul eder. Her anahtarın eşleşen bir değeri olmalıdır.

Dönüş değeri

Her anahtar ve değer çifti içeren bir nesne.

Örnek

Aşağıdaki örnek, farklı değer türlerinden bir nesne oluşturur:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
  ],
  "outputs": {
    "newObject": {
      "type": "object",
      "value": "[createObject('intProp', 1, 'stringProp', 'abc', 'boolProp', true(), 'arrayProp', createArray('a', 'b', 'c'), 'objectProp', createObject('key1', 'value1'))]"
    }
  }
}

Önceki örnekte varsayılan değerlerle elde edilen çıkış, aşağıdaki değere sahip adlı newObject bir nesnedir:

{
  "intProp": 1,
  "stringProp": "abc",
  "boolProp": true,
  "arrayProp": ["a", "b", "c"],
  "objectProp": {"key1": "value1"}
}

boş

empty(itemToTest)

Dizi, nesne veya dizenin boş olup olmadığını belirler.

Bicep'te işlevini kullanın empty .

Parametreler

Parametre Gerekli Türü Açıklama
itemToTest Evet dizi, nesne veya dize Boş olup olmadığını denetlemek için gereken değer.

Dönüş değeri

Değer boşsa True, değilse False döndürür.

Örnek

Aşağıdaki örnek bir dizi, nesne ve dizenin boş olup olmadığını denetler:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": []
    },
    "testObject": {
      "type": "object",
      "defaultValue": {}
    },
    "testString": {
      "type": "string",
      "defaultValue": ""
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testArray'))]"
    },
    "objectEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testObject'))]"
    },
    "stringEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testString'))]"
    }
  }
}

Önceki örnekteki varsayılan değerlerin çıkışı:

İsim Türü Değer
arrayEmpty Boole Doğru
objectEmpty Boole Doğru
stringEmpty Boole Doğru

kesişme

intersection(arg1, arg2, arg3, ...)

Parametrelerden ortak öğeler içeren tek bir dizi veya nesne döndürür.

Bicep'te işlevini kullanın intersection .

Parametreler

Parametre Gerekli Türü Açıklama
arg1 Evet dizi veya nesne Ortak öğeleri bulmak için kullanılacak ilk değer.
arg2 Evet dizi veya nesne Ortak öğeleri bulmak için kullanılacak ikinci değer.
diğer bağımsız değişkenler Hayı dizi veya nesne Ortak öğeleri bulmak için kullanılacak daha fazla değer.

Dönüş değeri

Ortak öğeleri olan bir dizi veya nesne.

Örnek

Aşağıdaki örnekte diziler ve nesnelerle nasıl kullanılacağı intersection gösterilmektedir:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "secondObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "z",
        "three": "c"
      }
    },
    "firstArray": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [ "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "objectOutput": {
      "type": "object",
      "value": "[intersection(parameters('firstObject'), parameters('secondObject'))]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[intersection(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

Önceki örnekteki varsayılan değerlerin çıkışı:

İsim Türü Değer
objectOutput Nesne {"one": "a", "three": "c"}
arrayOutput Dizi ["iki", "üç"]

eşya

items(object)

Sözlük nesnesini diziye dönüştürür. Bir diziyi nesneye dönüştürme hakkında toObject bölümüne bakın.

Bicep'te işlevini kullanın items .

Parametreler

Parametre Gerekli Türü Açıklama
object Evet object Diziye dönüştürülecek sözlük nesnesi.

Dönüş değeri

Dönüştürülen sözlük için bir nesne dizisi. Dizideki her nesne, sözlüğün anahtar değerini içeren bir key özelliğe sahiptir. Her nesnenin, nesnenin özelliklerini içeren bir value özelliği de vardır.

Örnek

Aşağıdaki örnek, bir sözlük nesnesini diziye dönüştürerek dizideki her nesne için değiştirilmiş değerlerle yeni bir nesne oluşturur:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "copy": [
      {
        "name": "modifiedListOfEntities",
        "count": "[length(items(variables('entities')))]",
        "input": {
          "key": "[items(variables('entities'))[copyIndex('modifiedListOfEntities')].key]",
          "fullName": "[items(variables('entities'))[copyIndex('modifiedListOfEntities')].value.displayName]",
          "itemEnabled": "[items(variables('entities'))[copyIndex('modifiedListOfEntities')].value.enabled]"
        }
      }
    ],
    "entities": {
      "item002": {
        "enabled": false,
        "displayName": "Example item 2",
        "number": 200
      },
      "item001": {
        "enabled": true,
        "displayName": "Example item 1",
        "number": 300
      }
    }
  },
  "resources": [],
  "outputs": {
    "modifiedResult": {
      "type": "array",
      "value": "[variables('modifiedListOfEntities')]"
    }
  }
}

Yukarıdaki örnek şunu döndürür:

"modifiedResult": {
  "type": "Array",
  "value": [
    {
      "fullName": "Example item 1",
      "itemEnabled": true,
      "key": "item001"
    },
    {
      "fullName": "Example item 2",
      "itemEnabled": false,
      "key": "item002"
    }
  ]
}

Aşağıdaki örnekte işlevin döndürdüğü dizi gösterilmektedir items :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "entities": {
      "item002": {
        "enabled": false,
        "displayName": "Example item 2",
        "number": 200
      },
      "item001": {
        "enabled": true,
        "displayName": "Example item 1",
        "number": 300
      }
    },
    "entitiesArray": "[items(variables('entities'))]"
  },
  "resources": [],
  "outputs": {
    "itemsResult": {
      "type": "array",
      "value": "[variables('entitiesArray')]"
    }
  }
}

Örnek şunu döndürür:

"itemsResult": {
  "type": "Array",
  "value": [
    {
      "key": "item001",
      "value": {
        "displayName": "Example item 1",
        "enabled": true,
        "number": 300
      }
    },
    {
      "key": "item002",
      "value": {
        "displayName": "Example item 2",
        "enabled": false,
        "number": 200
      }
    }
  ]
}

JSON'da nesne, sıfır veya daha fazla anahtar/değer çifti içeren sıralanmamış bir koleksiyondur. Sıralama, uygulamalara bağlı olarak farklı olabilir. Örneğin, Bicep items() işlevi nesneleri alfabetik düzende sıralar. Diğer yerlerde özgün sıralama korunabilir. Bu determinizm olmadığından, dağıtım parametreleri ve çıkışlarıyla etkileşim kuran kod yazarken nesne anahtarlarının sıralanmasıyla ilgili varsayımlarda bulunmaktan kaçının.

JSON

json(arg1)

Geçerli bir JSON dizesini JSON veri türüne dönüştürür.

Bicep'te işlevini kullanın json .

Parametreler

Parametre Gerekli Türü Açıklama
arg1 Evet String JSON'a dönüştürülecek değer. Dize düzgün biçimlendirilmiş bir JSON dizesi olmalıdır.

Dönüş değeri

Belirtilen dizedeki JSON veri türü veya null belirtildiğinde boş bir değer.

Açıklamalar

JSON nesnesine parametre değeri veya değişken eklemeniz gerekiyorsa, işleve geçirdiğiniz dizeyi oluşturmak için işlevini kullanın format .

Null değer almak için de kullanabilirsiniz null() .

Örnek

Aşağıdaki örnekte işlevin nasıl kullanılacağı gösterilmektedir json . Boş bir nesne için geçirebileceğinize null dikkat edin:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "jsonEmptyObject": {
      "type": "string",
      "defaultValue": "null"
    },
    "jsonObject": {
      "type": "string",
      "defaultValue": "{\"a\": \"b\"}"
    },
    "jsonString": {
      "type": "string",
      "defaultValue": "\"test\""
    },
    "jsonBoolean": {
      "type": "string",
      "defaultValue": "true"
    },
    "jsonInt": {
      "type": "string",
      "defaultValue": "3"
    },
    "jsonArray": {
      "type": "string",
      "defaultValue": "[[1,2,3 ]"
    },
    "concatValue": {
      "type": "string",
      "defaultValue": "demo value"
    }
  },
  "resources": [
  ],
  "outputs": {
    "emptyObjectOutput": {
      "type": "bool",
      "value": "[empty(json(parameters('jsonEmptyObject')))]"
    },
    "objectOutput": {
      "type": "object",
      "value": "[json(parameters('jsonObject'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[json(parameters('jsonString'))]"
    },
    "booleanOutput": {
      "type": "bool",
      "value": "[json(parameters('jsonBoolean'))]"
    },
    "intOutput": {
      "type": "int",
      "value": "[json(parameters('jsonInt'))]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[json(parameters('jsonArray'))]"
    },
    "concatObjectOutput": {
      "type": "object",
      "value": "[json(concat('{\"a\": \"', parameters('concatValue'), '\"}'))]"
    }
  }
}

Önceki örnekteki varsayılan değerlerin çıkışı:

İsim Türü Değer
emptyObjectOutput Boolean (Boole Mantığı) Doğru
objectOutput Nesne {"a": "b"}
stringOutput Dize deneme
booleanOutput Boolean (Boole Mantığı) Doğru
intOutput Tam sayı 3
arrayOutput Dizi [ 1, 2, 3 ]
concatObjectOutput Nesne { "a": "demo value" }

uzunluk

length(arg1)

Bir dizideki öğe sayısını, dizedeki karakterleri veya nesnedeki kök düzeyi özellikleri döndürür.

Bicep'te işlevini kullanın length .

Parametreler

Parametre Gerekli Türü Açıklama
arg1 Evet dizi, dize veya nesne Öğe sayısını almak için kullanılacak dizi, karakter sayısını almak için kullanılacak dize veya kök düzeyi özelliklerin sayısını almak için kullanılacak nesne.

Dönüş değeri

Bir int.

Örnek

Aşağıdaki örnekte bir dizi ve dize ile nasıl kullanılacağı length gösterilmektedir:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "stringToTest": {
      "type": "string",
      "defaultValue": "One Two Three"
    },
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "propA": "one",
        "propB": "two",
        "propC": "three",
        "propD": {
          "propD-1": "sub",
          "propD-2": "sub"
        }
      }
    }
  },
  "resources": [],
  "outputs": {
    "arrayLength": {
      "type": "int",
      "value": "[length(parameters('arrayToTest'))]"
    },
    "stringLength": {
      "type": "int",
      "value": "[length(parameters('stringToTest'))]"
    },
    "objectLength": {
      "type": "int",
      "value": "[length(parameters('objectToTest'))]"
    }
  }
}

Önceki örnekteki varsayılan değerlerin çıkışı:

İsim Türü Değer
diziUzunluğu Int 3
stringLength Int 13 (on üç)
objectLength Int 4

sıfır

null()

Null döndürür.

null İşlev Bicep'te kullanılamaz. Bunun yerine anahtar sözcüğünü null kullanın.

Parametreler

null İşlev herhangi bir parametre kabul etmez.

Dönüş değeri

Her zaman null olan bir değer.

Örnek

Aşağıdaki örnekte işlevi kullanılır null :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "emptyOutput": {
      "type": "bool",
      "value": "[empty(null())]"
    }
  }
}

Yukarıdaki örnekten alınan çıkış:

İsim Türü Değer
emptyOutput Boole Doğru

objectKeys

objectKeys(object)

Nesnenin anahtar-değer çiftleri koleksiyonu olduğu bir nesneden anahtarları döndürür.

Bicep'te işlevini kullanın objectKeys .

Parametreler

Parametre Gerekli Türü Açıklama
object Evet object Anahtar-değer çiftleri koleksiyonu olan nesnesi.

Dönüş değeri

Bir dizi.

Örnek

Aşağıdaki örnekte bir nesneyle nasıl kullanılacağı objectKeys gösterilmektedir:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "obj": {
      "a": 1,
      "b": 2
    }
  },
  "resources": [],
  "outputs": {
    "keyArray": {
      "type": "array",
      "value": "[objectKeys(variables('obj'))]"
    }
  }
}

Yukarıdaki örnekten alınan çıkış:

İsim Türü Değer
keyArray Dizi [ "a", "b" ]

JSON'da nesne, sıfır veya daha fazla anahtar/değer çifti içeren sıralanmamış bir koleksiyondur. Sıralama, uygulamalara bağlı olarak farklı olabilir. Örneğin, Bicep items() işlevi nesneleri alfabetik düzende sıralar. Diğer yerlerde özgün sıralama korunabilir. Bu determinizm olmadığından, dağıtım parametreleri ve çıkışlarıyla etkileşim kuran kod yazarken nesne anahtarlarının sıralanmasıyla ilgili varsayımlarda bulunmaktan kaçının.

shallowMerge

shallowMerge(inputArray)

Yalnızca en üst düzey nesnelerin birleştirildiği bir nesne dizisini birleştirir. Başka bir deyişle, birleştirilen nesneler iç içe nesneler içeriyorsa, bu iç içe nesne derin bir şekilde birleştirilmez; bunun yerine, bunlar tamamen birleştirilmiş nesneden karşılık gelen özellik tarafından değiştirilir.

Bicep'te işlevini kullanın shallowMerge .

Parametreler

Parametre Gerekli Türü Açıklama
inputArray Evet array Bir nesne dizisi.

Dönüş değeri

Bir nesnesi.

Örnek

Aşağıdaki örnekte shallowMergenasıl kullanılacağı gösterilmektedir:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "firstArray": [
      {
        "one": "a"
      },
      {
        "two": "b"
      },
      {
        "two": "c"
      }
    ],
    "secondArray": [
      {
        "one": "a",
        "nested": {
          "a": 1,
          "nested": {
            "c": 3
          }
        }
      },
      {
        "two": "b",
        "nested": {
          "b": 2
        }
      }
    ]
  },
  "resources": [],
  "outputs": {
    "firstOutput": {
      "type": "object",
      "value": "[shallowMerge(variables('firstArray'))]"
    },
    "secondOutput": {
      "type": "object",
      "value": "[shallowMerge(variables('secondArray'))]"
    }
  }
}

Önceki örnekteki varsayılan değerlerin çıkışı:

İsim Türü Değer
firstOutput object {"one":"a","two":"c"}
secondOutput object {"one":"a","nested":{"b":2},"two":"b"}

firstOutput , birleştirilen nesnelerin yeni bir nesnede birleştirildiği özellikleri gösterir. Çakışan özellikler varsa (aynı ada sahip özellikler), birleştirilen son nesnenin özelliği genellikle önceliklidir.

secondOutput , sığ birleştirmenin bu iç içe nesneleri yinelemeli olarak birleştirmediği gösterir. Bunun yerine, iç içe nesnenin tamamı birleştirme nesnesinden karşılık gelen özellik ile değiştirilir.

tryGet

tryGet(itemToTest, keyOrIndex)

tryGet , bir nesne veya dizideki var olmayan bir özelliğe veya dizine erişmeye çalışırken dağıtım hatalarından kaçınmanıza yardımcı olur. Belirtilen anahtar veya dizin yoksa, tryGet hata oluşturmak yerine null döndürür.

Bicep'te safe-dereference işlecini kullanın.

Parametreler

Parametre Gerekli Türü Açıklama
itemToTest Evet dizi, nesne Araştıracak bir nesne veya dizi.
keyOrIndex Evet dize, int Diziden veya nesneden alınacak anahtar veya dizin. Nesneler için özellik adı veya diziler için dizin.

Dönüş değeri

Varsa anahtar/dizindeki değeri döndürür. Anahtar/dizin eksikse veya sınırların dışındaysa null döndürür.

Örnek

Aşağıdaki örnek bir dizi, nesne ve dizenin boş olup olmadığını denetler:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "variables": {
    "users": {
      "name": "John Doe",
      "age": 30
    },
    "colors": [
      "red",
      "green"
    ]
  },
  "resources": [],
  "outputs": {
    "region": {
      "type": "string",
      "nullable": true,
      "value": "[tryGet(variables('users'), 'region')]"
    },
    "name": {
      "type": "string",
      "nullable": true,
      "value": "[tryGet(variables('users'), 'name')]"
    },
    "firstColor": {
      "type": "string",
      "nullable": true,
      "value": "[tryGet(variables('colors'), 0)]"
    }
  }
}

Yukarıdaki örnekten alınan çıkış:

İsim Türü Değer
bölge Dize (NULL)
isim Dize John Doe
firstColor Dize Kırmızı

birleşim

union(arg1, arg2, arg3, ...)

Parametrelerdeki tüm öğeleri içeren tek bir dizi veya nesne döndürür. Diziler için, yinelenen değerler bir kez eklenir. Nesneler için yinelenen özellik adları yalnızca bir kez eklenir.

Bicep'te işlevini kullanın union .

Parametreler

Parametre Gerekli Türü Açıklama
arg1 Evet dizi veya nesne Öğeleri birleştirmek için kullanılacak ilk değer.
arg2 Evet dizi veya nesne Öğeleri birleştirmek için kullanılacak ikinci değer.
diğer bağımsız değişkenler Hayı dizi veya nesne Öğeleri birleştirmek için kullanılacak diğer değerler.

Dönüş değeri

Dizi veya nesne.

Açıklamalar

işlevi, union sonucun sırasını ve değerlerini belirlemek için parametrelerin sırasını kullanır.

Diziler için işlev, ilk parametredeki her öğede yinelenir ve henüz mevcut değilse sonucuna ekler. Ardından, ikinci parametre ve diğer parametreler için işlemi yineler. Bir değer zaten varsa, dizideki önceki yerleşimi korunur.

Nesneler için, ilk parametredeki özellik adları ve değerler sonuda eklenir. Daha sonraki parametreler için, sonuda yeni adlar eklenir. Sonraki bir parametre aynı ada sahip bir özelliğe sahipse, bu değer var olan değerin üzerine yazar. Özelliklerin sırası garanti değildir.

union işlevi yalnızca üst düzey öğeleri birleştirmekle kalmaz, aynı zamanda iç içe dizileri ve nesneleri yinelemeli olarak birleştirir. Aşağıdaki bölümdeki ikinci örne bakın.

Örnek

Aşağıdaki örnekte diziler ve nesnelerle nasıl kullanılacağı union gösterilmektedir:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c1"
      }
    },
    "secondObject": {
      "type": "object",
      "defaultValue": {
        "three": "c2",
        "four": "d",
        "five": "e"
      }
    },
    "firstArray": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [ "three", "four" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "objectOutput": {
      "type": "object",
      "value": "[union(parameters('firstObject'), parameters('secondObject'))]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[union(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

Önceki örnekteki varsayılan değerlerin çıkışı:

İsim Türü Değer
objectOutput Nesne {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"}
arrayOutput Dizi ["bir", "iki", "üç", "dört"]

Aşağıdaki örnekte derin birleştirme özelliği gösterilmektedir:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "firstObject": {
      "property": {
        "one": "a",
        "two": "b",
        "three": "c1"
      },
      "nestedArray": [
        1,
        2
      ]
    },
    "secondObject": {
      "property": {
        "three": "c2",
        "four": "d",
        "five": "e"
      },
      "nestedArray": [
        3,
        4
      ]
    },
    "firstArray": [
      [
        "one",
        "two"
      ],
      [
        "three"
      ]
    ],
    "secondArray": [
      [
        "three"
      ],
      [
        "four",
        "two"
      ]
    ]
  },
  "resources": [],
  "outputs": {
    "objectOutput": {
      "type": "Object",
      "value": "[union(variables('firstObject'), variables('secondObject'))]"
    },
    "arrayOutput": {
      "type": "Array",
      "value": "[union(variables('firstArray'), variables('secondArray'))]"
    }
  }
}

Yukarıdaki örnekten alınan çıkış:

İsim Türü Değer
objectOutput Nesne {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]}
arrayOutput Dizi [["bir","iki"],["üç"],["dört","iki"]]

İç içe diziler birleştirildiyse objectOutput.nestedArray değeri [1, 2, 3, 4] ve arrayOutput değeri [["one", "iki", "üç"], ["üç", "dört", "iki"]] olur.

Sonraki Adımlar

ARM şablonundaki bölümlerin açıklaması için bkz . ARM şablonlarının yapısını ve söz dizimini anlama.