Megosztás a következőn keresztül:


Változók a Bicepben

Ez a cikk azt ismerteti, hogyan definiálhat és használhat változókat a Bicep-fájlban. Változókkal egyszerűsítheti a Bicep-fájlfejlesztést. Ahelyett, hogy bonyolult kifejezéseket ismételnél a Bicep-fájlban, definiáljon egy változót, amely a bonyolult kifejezést tartalmazza. Ezután szükség szerint használja ezt a változót a Bicep-fájlban.

A Resource Manager az üzembe helyezési műveletek megkezdése előtt feloldja a változókat. Bárhol is használja a változót a Bicep-fájlban, a Resource Manager lecseréli a feloldott értékre.

Egy Bicep-fájlban legfeljebb 512 változó lehet. További információ: Sablonkorlátok.

Változók meghatározása

A változók meghatározásának szintaxisa a következő:

@<decorator>(<argument>)
var <variable-name> = <variable-value>

Egy változónak nem lehet ugyanaz a neve, mint egy paraméternek, modulnak vagy erőforrásnak.

Figyelje meg, hogy nem ad meg adattípust a változóhoz. A típus az értékből származik. Az alábbi példa egy változót sztringre állít be.

var stringVar = 'example value'

A változó létrehozásakor használhatja egy paraméter vagy egy másik változó értékét.

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

Az előző példa a következőt adja vissza:

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

A bicep függvényekkel létrehozhatja a változó értékét. Az alábbi példa Bicep-függvényekkel hoz létre sztringértéket egy tárfióknévhez.

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

output uniqueStorageName string = storageName

Az előző példa az alábbihoz hasonló értéket ad vissza:

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

A változók definiálásakor iteratív hurkokat használhat. Az alábbi példa három tulajdonsággal rendelkező objektumtömböt hoz létre.

param itemCount int = 3

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

output arrayResult array = objectArray

A kimenet egy tömböt ad vissza a következő értékekkel:

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

A változókkal használható hurkok típusairól további információt a Bicep iteratív ciklusai című témakörben talál.

Dekorátorok használata

A dekorátorok formátuma @expression a változó deklarációk fölé kerül. Az alábbi táblázat a változókhoz elérhető dekorátorokat mutatja be.

Lakberendező Argumentum Leírás
leírás húr Adja meg a változó leírását.
kivitel Nincs Azt jelzi, hogy a változó egy másik Bicep-fájl által importálható.

A dekorátorok a sys névtérben találhatók. Ha meg kell különböztetnie egy dekoratőrt egy másik, azonos nevű elemtől, akkor a dekoratőrt a következővel kell előtagolnia sys: . Ha például a Bicep-fájl tartalmaz egy elnevezett descriptionváltozót, a leírás-dekorátor használatakor hozzá kell adnia a sys névteret.

Leírás

Magyarázat hozzáadásához adjon hozzá egy leírást a változódeklarációhoz. Példa:

@description('Create a unique storage account name.')
var storageAccountName = uniqueString(resourceGroup().id)

Markdown formátumú szöveg használható a leírás szövegéhez.

Exportálás

A változó más Bicep-fájlokkal való megosztására használható @export() . További információ: Változók, típusok és függvények exportálása.

Változók használata

Az alábbi példa bemutatja, hogyan használhatja a változót egy erőforrástulajdonsághoz. A változó értékére a változó nevének megadásával hivatkozhat: storageName.

param rgLocation string
param storageNamePrefix string = 'STG'

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

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

output stgOutput string = storageName

Mivel a tárfiókok nevének kisbetűket kell használnia, a storageName változó a toLower függvény használatával kisbetűssé teszi az storageNamePrefix értéket. A uniqueString függvény egyedi értéket hoz létre az erőforráscsoport-azonosítóból. Az értékek összefűződnek egy sztringgel.

Konfigurációs változók

Definiálhat olyan változókat, amelyek a környezet konfigurálásához kapcsolódó értékeket tartalmaznak. A változót objektumként definiálja az értékekkel. Az alábbi példa egy olyan objektumot mutat be, amely két környezet értékeit tartalmazza – teszt és próba. Adja meg az alábbi értékek egyikét az üzembe helyezés során.

@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

Következő lépések