Feltételes üzembe helyezés ARM-sablonokban
Előfordulhat, hogy szükség van egy erőforrás azure Resource Manager-sablonban (ARM-sablonban) történő üzembe helyezésére. condition
Az elem használatával megadhatja, hogy az erőforrás üzembe lett-e helyezve. A feltétel értéke igaz vagy hamis lesz. Ha az érték igaz, az erőforrás létrejön. Ha az érték hamis, az erőforrás nem jön létre. Az érték csak a teljes erőforrásra alkalmazható.
Megjegyzés
A feltételes üzembe helyezés nem kaszkádolt a gyermekerőforrásokra. Ha feltételesen szeretne üzembe helyezni egy erőforrást és annak alárendelt erőforrásait, minden erőforrástípusra ugyanazt a feltételt kell alkalmaznia.
Tipp
Azért javasoljuk a Bicep használatát, mert ugyanazokkal a képességekkel rendelkezik, mint az ARM-sablonok, és a szintaxis használata egyszerűbb. További információ: feltételes üzembe helyezés.
Üzembe helyezési feltétel
Megadhat egy paraméterértéket, amely jelzi, hogy egy erőforrás üzembe lett-e helyezve. Az alábbi példa feltételesen üzembe helyez egy DNS-zónát.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"deployZone": {
"type": "bool"
}
},
"functions": [],
"resources": [
{
"condition": "[parameters('deployZone')]",
"type": "Microsoft.Network/dnsZones",
"apiVersion": "2018-05-01",
"name": "myZone",
"location": "global"
}
]
}
Összetettebb példa: Azure SQL logikai kiszolgáló.
Új vagy meglévő erőforrás
A feltételes üzembe helyezéssel új erőforrást hozhat létre, vagy használhat egy meglévőt. Az alábbi példa bemutatja, hogyan helyezhet üzembe egy új tárfiókot, vagy hogyan használhat meglévő tárfiókot.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"newOrExisting": {
"type": "string",
"defaultValue": "new",
"allowedValues": [
"new",
"existing"
]
}
},
"resources": [
{
"condition": "[equals(parameters('newOrExisting'), 'new')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
},
{
"condition": "[equals(parameters('newOrExisting'), 'existing')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "[parameters('storageAccountName')]"
}
],
"outputs": {
"storageAccountId": {
"type": "string",
"value": "[if(equals(parameters('newOrExisting'), 'new'), resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')))]"
}
}
}
Ha a paraméter newOrExisting
új értékre van állítva, a feltétel true (igaz) értéket ad vissza. A tárfiók üzembe van helyezve. Ellenkező esetben a meglévő tárfiókot használja a rendszer.
Az elemet használó condition
teljes példasablonért lásd: Új vagy meglévő Virtual Network, Storage és Nyilvános IP-címmel rendelkező virtuális gép.
Futtatókörnyezeti függvények
Ha feltételesen üzembe helyezett erőforrással használ referencia- vagy listafüggvényt, a függvény akkor is kiértékelhető, ha az erőforrás nincs üzembe helyezve. Hibaüzenet jelenik meg, ha a függvény nem létező erőforrásra hivatkozik.
Az if függvénnyel győződjön meg arról, hogy a függvény csak az erőforrás üzembe helyezésekor van kiértékelve. Tekintse meg a feltételesen üzembe helyezett erőforrást használó és reference
egy feltételesen üzembe helyezett erőforrást használó if
mintasablon if függvényét.
Az erőforrásokat úgy állítja be, mint egy feltételes erőforrást , pontosan úgy, mint bármely más erőforrást. Ha egy feltételes erőforrás nincs üzembe helyezve, az Azure Resource Manager automatikusan eltávolítja a szükséges függőségekből.
Teljes mód
Ha teljes módban helyez üzembe egy sablont, és egy erőforrás nincs üzembe helyezve, mert condition
a kiértékelése hamis, az eredmény attól függ, hogy melyik REST API-verziót használja a sablon üzembe helyezéséhez. Ha 2019.05.10-nél korábbi verziót használ, az erőforrás nem törlődik. A 2019-05-10 vagy újabb verziójú erőforrás törlődik. A Azure PowerShell és az Azure CLI legújabb verziói törlik az erőforrást, ha a feltétel hamis.
Következő lépések
- A feltételes üzembe helyezést ismertető Learn-modulért lásd: Összetett felhőbeli üzemelő példányok kezelése speciális ARM-sablonfunkciók használatával.
- A sablonok létrehozásával kapcsolatos javaslatokért tekintse meg az ARM-sablonokkal kapcsolatos ajánlott eljárásokat.
- Egy erőforrás több példányának létrehozásához lásd: Erőforrás-iteráció ARM-sablonokban.