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 description
vá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
- A változók elérhető tulajdonságairól a Bicep-fájlok szerkezetének és szintaxisának ismertetése című témakörben olvashat.
- A ciklusszintaxis használatáról a Bicep iteratív ciklusai című témakörben olvashat.