Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Czasami należy opcjonalnie wdrożyć zasób w szablonie usługi Azure Resource Manager (szablon usługi ARM).
condition Użyj elementu , aby określić, czy zasób jest wdrożony. Wartość warunku jest rozpoznawana jako prawda lub fałsz. Gdy wartość jest true, zasób zostaje utworzony. Gdy wartość jest fałszywa, zasób nie jest tworzony. Wartość można zastosować tylko do całego zasobu.
Uwaga / Notatka
Wdrożenie warunkowe nie przenika do zasobów podrzędnych. Jeśli chcesz warunkowo wdrożyć zasób i jego zasoby podrzędne, musisz zastosować ten sam warunek do każdego typu zasobu.
Wskazówka
Zalecamy Bicep, ponieważ oferuje te same możliwości co szablony ARM, a składnia jest łatwiejsza do użycia. Aby dowiedzieć się więcej, zobacz wdrożenia warunkowe.
Warunek wdrożenia
Możesz przekazać wartość parametru, która wskazuje, czy zasób jest wdrożony. Poniższy przykład warunkowo wdraża strefę DNS.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"deployZone": {
"type": "bool",
"defaultValue": true
}
},
"functions": [],
"resources": [
{
"condition": "[parameters('deployZone')]",
"type": "Microsoft.Network/dnsZones",
"apiVersion": "2023-07-01-preview",
"name": "myZone",
"location": "global",
"properties": {
"zoneType": "Public"
}
}
]
}
Aby uzyskać bardziej złożony przykład, zobacz Serwer logiczny Usługi Azure SQL.
Nowy lub istniejący zasób
Za pomocą wdrożenia warunkowego można utworzyć nowy zasób lub użyć istniejącego. W poniższym przykładzie pokazano, jak wdrożyć nowe konto magazynu lub użyć istniejącego konta magazynu.
{
"$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": "2025-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
},
{
"condition": "[equals(parameters('newOrExisting'), 'existing')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-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')))]"
}
}
}
Gdy parametr newOrExisting jest ustawiony na nowy, warunek ma wartość true. Konto magazynu zostało wdrożone. W przeciwnym razie jest używane istniejące konto magazynu.
Dla pełnego przykładowego szablonu używającego elementu condition, zobacz Maszynę Wirtualną z nową lub istniejącą siecią wirtualną, magazynem i publicznym adresem IP.
Funkcje środowiska uruchomieniowego
Jeśli używasz funkcji odwołania lub listy z zasobem, który jest wdrażany warunkowo, funkcja jest oceniana nawet wtedy, gdy zasób nie jest wdrożony. Jeśli funkcja odwołuje się do zasobu, który nie istnieje, występuje błąd.
Użyj funkcji if , aby upewnić się, że funkcja jest oceniana tylko pod kątem warunków, gdy zasób jest wdrożony. Zobacz funkcję if dla przykładowego szablonu, który używa if i reference z warunkowo wdrożonym zasobem.
Zasób jest ustawiany jako zależny od zasobu warunkowego dokładnie tak, jak każdy inny zasób. Gdy zasób warunkowy nie zostanie wdrożony, usługa Azure Resource Manager automatycznie usunie go z wymaganych zależności.
Tryb ukończenia
Jeśli wdrożysz szablon z trybem pełnym i zasób nie zostanie wdrożony, ponieważ condition ma wartość false, wynik zależy od wersji interfejsu API REST używanej do wdrożenia szablonu. Jeśli używasz wersji starszej niż 2019-05-10, zasób nie zostanie usunięty. W przypadku wersji 2019-05-10 lub nowszej zasób jest usuwany. Najnowsze wersje programu Azure PowerShell i interfejsu wiersza polecenia platformy Azure usuwają zasób, gdy warunek jest fałszywy.
Dalsze kroki
- Aby zapoznać się z modułem Learn obejmującym wdrażanie warunkowe, zobacz Manage complex cloud deployments by using advanced ARM template features (Zarządzanie złożonymi wdrożeniami w chmurze przy użyciu zaawansowanych funkcji szablonu usługi ARM).
- Aby uzyskać zalecenia dotyczące tworzenia szablonów, zobacz Najlepsze rozwiązania dotyczące szablonów usługi ARM.
- Aby utworzyć wiele wystąpień zasobu, zobacz Iteracja zasobów w szablonach ARM.