Proměnné v Bicepu

Tento článek popisuje, jak definovat a používat proměnné v souboru Bicep. Proměnné slouží ke zjednodušení vývoje souborů Bicep. Místo opakování složitých výrazů v celém souboru Bicep definujete proměnnou, která obsahuje komplikovaný výraz. Pak tuto proměnnou použijete podle potřeby v celém souboru Bicep.

Resource Manager před spuštěním operací nasazení přeloží proměnné. Bez ohledu na to, kde se proměnná použije v souboru Bicep, Resource Manager ji nahradí přeloženou hodnotou.

V souboru Bicep jste omezeni na 256 proměnných. Další informace najdete v tématu Limity šablon.

Definovat proměnnou

Syntaxe pro definování proměnné je:

var <variable-name> = <variable-value>

Proměnná nemůže mít stejný název jako parametr, modul nebo prostředek.

Všimněte si, že pro proměnnou nezadáte datový typ . Typ je odvozen z hodnoty. Následující příklad nastaví proměnnou na řetězec.

var stringVar = 'example value'

Při vytváření proměnné můžete použít hodnotu z parametru nebo jiné proměnné.

param inputValue string = 'deployment parameter'

var stringVar = 'preset variable'
var concatToVar =  '${stringVar}AddToVar'
var concatToParam = '${inputValue}AddToParam'

output addToVar string = concatToVar
output addToParam string = concatToParam

Předchozí příklad vrátí:

{
  "addToParam": {
    "type": "String",
    "value": "deployment parameterAddToParam"
  },
  "addToVar": {
    "type": "String",
    "value": "preset variableAddToVar"
  }
}

K vytvoření hodnoty proměnné můžete použít funkce Bicep . Následující příklad používá funkce Bicep k vytvoření řetězcové hodnoty pro název účtu úložiště.

param storageNamePrefix string = 'stg'
var storageName = '${toLower(storageNamePrefix)}${uniqueString(resourceGroup().id)}'

output uniqueStorageName string = storageName

Předchozí příklad vrátí hodnotu jako následující:

"uniqueStorageName": {
  "type": "String",
  "value": "stghzuunrvapn6sw"
}

Při definování proměnné můžete použít iterativní smyčky. Následující příklad vytvoří pole objektů se třemi vlastnostmi.

param itemCount int = 3

var objectArray = [for i in range(0, itemCount): {
  name: 'myDataDisk${(i + 1)}'
  diskSizeGB: '1'
  diskIndex: i
}]

output arrayResult array = objectArray

Výstup vrátí pole s následujícími hodnotami:

[
  {
    "name": "myDataDisk1",
    "diskSizeGB": "1",
    "diskIndex": 0
  },
  {
    "name": "myDataDisk2",
    "diskSizeGB": "1",
    "diskIndex": 1
  },
  {
    "name": "myDataDisk3",
    "diskSizeGB": "1",
    "diskIndex": 2
  }
]

Další informace o typech smyček, které můžete použít s proměnnými, najdete v tématu Iterativní smyčky v bicepu.

Použití proměnné

Následující příklad ukazuje, jak použít proměnnou pro vlastnost prostředku. Na hodnotu proměnné odkazujete zadáním názvu proměnné: storageName.

param rgLocation string
param storageNamePrefix string = 'STG'

var storageName = '${toLower(storageNamePrefix)}${uniqueString(resourceGroup().id)}'

resource demoAccount 'Microsoft.Storage/storageAccounts@2021-02-01' = {
  name: storageName
  location: rgLocation
  kind: 'Storage'
  sku: {
    name: 'Standard_LRS'
  }
}

output stgOutput string = storageName

Vzhledem k tomu, že v názvech účtů úložiště musí být malá písmena, storageName proměnná použije toLower funkci k nastavení storageNamePrefix hodnoty na malá písmena. Funkce uniqueString vytvoří jedinečnou hodnotu z ID skupiny prostředků. Hodnoty jsou zřetězeny do řetězce.

Proměnné konfigurace

Můžete definovat proměnné, které obsahují související hodnoty pro konfiguraci prostředí. Proměnnou definujete jako objekt s hodnotami. Následující příklad ukazuje objekt, který obsahuje hodnoty pro dvě prostředí – test a prod. Během nasazení předejte jednu z těchto hodnot.

@allowed([
  'test'
  'prod'
])
param environmentName string

var environmentSettings = {
  test: {
    instanceSize: 'Small'
    instanceCount: 1
  }
  prod: {
    instanceSize: 'Large'
    instanceCount: 4
  }
}

output instanceSize string = environmentSettings[environmentName].instanceSize
output instanceCount int = environmentSettings[environmentName].instanceCount

Další kroky