Datové typy v šablonách ARM

Tento článek popisuje datové typy podporované v šablonách Azure Resource Manageru (šablony ARM).

Podporované typy

V šabloně ARM můžete použít tyto datové typy:

  • pole
  • bool
  • int
  • objekt
  • secureObject
  • securestring
  • string

Pole

Pole začínají levou závorkou ([) a končí pravou závorkou (]). Pole lze deklarovat v jednom řádku nebo více řádcích. Každý prvek je oddělen čárkou.

"parameters": {
  "exampleArray": {
    "type": "array",
    "defaultValue": [
      1,
      2,
      3
    ]
  }
},

"outputs": {
  "arrayOutput": {
    "type": "array",
    "value": "[variables('exampleArray')]"
  },
  "firstExampleArrayElement": {
    "type": "int",
    "value": "[parameters('exampleArray')[0]]"
  }
}

Prvky pole mohou být stejného typu nebo různé typy.

"variables": {
  "mixedArray": [
    "[resourceGroup().name]",
    1,
    true,
    "example string"
  ]
}

"outputs": {
  "arrayOutput": {
    "type": "array",
    "value": "[variables('mixedArray')]"
  },
  "firstMixedArrayElement": {
    "type": "string",
    "value": "[variables('mixedArray')[0]]"
  }
}

Logické hodnoty

Při zadávání logických hodnot použijte true nebo false. Neohranižujte hodnotu uvozovkami.

"parameters": {
  "exampleBool": {
    "type": "bool",
    "defaultValue": true
  }
},

Celá čísla

Při zadávání celočíselné hodnoty nepoužívejte uvozovky.

"parameters": {
  "exampleInt": {
    "type": "int",
    "defaultValue": 1
  }
}

U celých čísel předaných jako vložené parametry může být rozsah hodnot omezen sadou SDK nebo nástrojem příkazového řádku, který používáte k nasazení. Například při použití PowerShellu k nasazení šablony můžou být celočíselné typy v rozsahu od -2147483648 po 2147483647. Chcete-li se tomuto omezení vyhnout, zadejte velké celočíselné hodnoty v souboru parametrů. Typy prostředků používají vlastní omezení pro celočíselné vlastnosti.

Objekty

Objekty začínají levou složenou závorkou ({) a končí pravou složenou závorkou (}). Každá vlastnost v objektu se skládá z key a value. value A key jsou uzavřeny do dvojitých uvozovek a odděleny dvojtečka (:). Každá vlastnost je oddělena čárkou.

"parameters": {
  "exampleObject": {
    "type": "object",
    "defaultValue": {
      "name": "test name",
      "id": "123-abc",
      "isCurrent": true,
      "tier": 1
    }
  }
}

Vlastnost můžete získat z objektu s tečkou.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "exampleObject": {
            "type": "object",
            "defaultValue": {
                "name": "test name",
                "id": "123-abc",
                "isCurrent": true,
                "tier": 1
            }
        }
    },
    "resources": [
    ],
    "outputs": {
        "nameFromObject": {
            "type": "string",
            "value": "[parameters('exampleObject').name]"
        }
    }
}

Ve formátu JSON je objekt neuspořádanou kolekcí párů klíč/hodnota nula nebo více. Řazení se může lišit v závislosti na implementacích. Například funkce Bicep items() seřadí objekty v abecedním pořadí. Na jiných místech lze původní řazení zachovat. Kvůli tomuto ne determinismu nepoužívejte žádné předpoklady týkající se řazení klíčů objektů při psaní kódu, které interaguje s parametry nasazení a výstupy.

Řetězce

Řetězce jsou označené dvojitými uvozovkami.

"parameters": {
  "exampleString": {
    "type": "string",
    "defaultValue": "test value"
  }
},

Zabezpečení řetězců a objektů

Zabezpečený řetězec používá stejný formát jako řetězec a zabezpečený objekt používá stejný formát jako objekt. Když nastavíte parametr na zabezpečený řetězec nebo zabezpečený objekt, hodnota parametru se neuloží do historie nasazení a nezaprotokoluje se. Pokud ale tuto zabezpečenou hodnotu nastavíte na vlastnost, která neočekává bezpečnou hodnotu, nebude tato hodnota chráněna. Pokud například nastavíte zabezpečený řetězec na značku, uloží se tato hodnota jako prostý text. Používejte zabezpečené řetězce pro hesla a tajné kódy.

Následující příklad ukazuje dva zabezpečené parametry.

"parameters": {
  "password": {
    "type": "securestring"
  },
  "configValues": {
    "type": "secureObject"
  }
}

Poznámka:

Jako výstupní hodnoty nepoužívejte zabezpečené řetězce ani objekty. Pokud jako výstupní hodnotu zahrnete zabezpečenou hodnotu, tato hodnota se v historii nasazení nezobrazí a nedá se načíst z jiné šablony. Místo toho uložte zabezpečenou hodnotu do trezoru klíčů a předejte ji jako parametr z trezoru klíčů.

Další kroky

Další informace o syntaxi šablon najdete v tématu Vysvětlení struktury a syntaxe šablon ARM.