Logické funkce pro šablony ARM
Resource Manager nabízí několik funkcí pro porovnání v šabloně Azure Resource Manageru (šablona ARM):
Tip
Doporučujeme Bicep, protože nabízí stejné možnosti jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v logické funkci logické funkce a logických operátorech.
a
and(arg1, arg2, ...)
Zkontroluje, jestli jsou všechny hodnoty parametrů pravdivé.
Funkce and
není v Bicep podporovaná. Místo toho použijte operátor &.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | boolean | První hodnota, která zkontroluje, jestli je true. |
arg2 | Ano | boolean | Druhá hodnota, která zkontroluje, jestli je true. |
další argumenty | No | boolean | Další argumenty ke kontrole, jestli jsou pravdivé. |
Vrácená hodnota
Vrátí hodnotu True , pokud jsou všechny hodnoty pravdivé. V opačném případě vrátí hodnotu False.
Příklady
Následující příklad ukazuje, jak používat logické funkce.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
Výstup z předchozího příkladu je:
Name | Typ | Hodnota |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
bool
bool(arg1)
Převede parametr na logickou hodnotu.
V bicep použijte logickou funkci logické funkce.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | řetězec nebo int | Hodnota, která se má převést na logickou hodnotu. |
Vrácená hodnota
Logická hodnota převedené hodnoty.
Poznámky
K získání logických hodnot můžete použít také true() a false().
Příklady
Následující příklad ukazuje, jak použít logickou hodnotu s řetězcem nebo celé číslo.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueString": {
"type": "bool",
"value": "[bool('true')]"
},
"falseString": {
"type": "bool",
"value": "[bool('false')]"
},
"trueInt": {
"type": "bool",
"value": "[bool(1)]"
},
"falseInt": {
"type": "bool",
"value": "[bool(0)]"
}
}
}
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
trueString | Bool | True |
Falsestring | Bool | False |
trueInt | Bool | True |
falseInt | Bool | False |
false (nepravda)
false()
Vrátí hodnotu false.
Funkce false
není v Bicep dostupná. false
Místo toho použijte klíčové slovo.
Parametry
Funkce false nepřijímá žádné parametry.
Vrácená hodnota
Logická hodnota, která je vždy false.
Příklad
Následující příklad vrátí hodnotu výstupu false.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"falseOutput": {
"type": "bool",
"value": "[false()]"
}
}
}
Výstup z předchozího příkladu je:
Name | Typ | Hodnota |
---|---|---|
falseOutput | Bool | False |
if
if(condition, trueValue, falseValue)
Vrátí hodnotu na základě toho, jestli je podmínka pravdivá nebo nepravda.
Funkce if
není v Bicep podporovaná. Místo toho použijte operátor ?:
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
condition | Ano | boolean | Hodnota, která zkontroluje, jestli je pravdivá nebo nepravda. |
Truevalue | Ano | string, int, object nebo array | Hodnota, která se má vrátit, když je podmínka pravdivá. |
Falsevalue | Ano | string, int, object nebo array | Hodnota, která se má vrátit, když je podmínka false. |
Vrácená hodnota
Vrátí druhý parametr, pokud je první parametr True. V opačném případě vrátí třetí parametr.
Poznámky
Pokud je podmínka true, vyhodnotí se pouze hodnota true. Pokud je podmínka False, vyhodnotí se pouze hodnota false. if
S funkcí můžete zahrnout výrazy, které jsou platné pouze podmíněně. Můžete například odkazovat na prostředek, který existuje v jedné podmínce, ale ne v jiné podmínce. Příklad podmíněného vyhodnocování výrazů je uveden v následující části.
Příklady
Následující příklad ukazuje, jak používat if
funkci.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
],
"outputs": {
"yesOutput": {
"type": "string",
"value": "[if(equals('a', 'a'), 'yes', 'no')]"
},
"noOutput": {
"type": "string",
"value": "[if(equals('a', 'b'), 'yes', 'no')]"
},
"objectOutput": {
"type": "object",
"value": "[if(equals('a', 'a'), json('{\"test\": \"value1\"}'), json('null'))]"
}
}
}
Výstup z předchozího příkladu je:
Name | Typ | Hodnota |
---|---|---|
AnoOutput | String | ano |
noOutput | Řetězcové | ne |
objectOutput | Object | { "test": "value1" } |
Následující příklad šablony ukazuje, jak používat tuto funkci s výrazy, které jsou pouze podmíněně platné.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string"
},
"location": {
"type": "string"
},
"logAnalytics": {
"type": "string",
"defaultValue": ""
}
},
"resources": [
{
"condition": "[not(empty(parameters('logAnalytics')))]",
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2022-11-01",
"name": "[format('{0}/omsOnboarding', parameters('vmName'))]",
"location": "[parameters('location')]",
"properties": {
"publisher": "Microsoft.EnterpriseCloud.Monitoring",
"type": "MicrosoftMonitoringAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"workspaceId": "[if(not(empty(parameters('logAnalytics'))), reference(parameters('logAnalytics'), '2015-11-01-preview').customerId, null())]"
},
"protectedSettings": {
"workspaceKey": "[if(not(empty(parameters('logAnalytics'))), listKeys(parameters('logAnalytics'), '2015-11-01-preview').primarySharedKey, null())]"
}
}
}
],
"outputs": {
"mgmtStatus": {
"type": "string",
"value": "[if(not(empty(parameters('logAnalytics'))), 'Enabled monitoring for VM!', 'Nothing to enable')]"
}
}
}
not
not(arg1)
Převede logickou hodnotu na opačnou hodnotu.
Funkce not
není v Bicep podporovaná. Místo toho použijte operátor !.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | boolean | Hodnota, kterou chcete převést. |
Vrácená hodnota
Vrátí hodnotu True , pokud je parametr False. Vrátí hodnotu False , pokud je parametr True.
Příklady
Následující příklad ukazuje, jak používat logické funkce.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
Výstup z předchozího příkladu je:
Name | Typ | Hodnota |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
Následující příklad používá se not
rovná.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
],
"outputs": {
"checkNotEquals": {
"type": "bool",
"value": "[not(equals(1, 2))]"
}
}
}
Výstup z předchozího příkladu je:
Name | Typ | Hodnota |
---|---|---|
checkNotEquals | Bool | True |
nebo
or(arg1, arg2, ...)
Zkontroluje, jestli je jakákoli hodnota parametru pravdivá.
Funkce or
není v Bicep podporovaná. Místo toho použijte operátor ||.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | boolean | První hodnota, která zkontroluje, jestli je true. |
arg2 | Ano | boolean | Druhá hodnota, která zkontroluje, jestli je true. |
další argumenty | No | boolean | Další argumenty ke kontrole, jestli jsou pravdivé. |
Vrácená hodnota
Vrátí hodnotu True , pokud je některá hodnota pravdivá. V opačném případě vrátí hodnotu False.
Příklady
Následující příklad ukazuje, jak používat logické funkce.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"andExampleOutput": {
"type": "bool",
"value": "[and(bool('true'), bool('false'))]"
},
"orExampleOutput": {
"type": "bool",
"value": "[or(bool('true'), bool('false'))]"
},
"notExampleOutput": {
"type": "bool",
"value": "[not(bool('true'))]"
}
}
}
Výstup z předchozího příkladu je:
Name | Typ | Hodnota |
---|---|---|
andExampleOutput | Bool | False |
orExampleOutput | Bool | True |
notExampleOutput | Bool | False |
true
true()
Vrací hodnotu true.
Funkce true
není v Bicep dostupná. true
Místo toho použijte klíčové slovo.
Parametry
Funkce true nepřijímá žádné parametry.
Vrácená hodnota
Logická hodnota, která je vždy pravdivá.
Příklad
Následující příklad vrátí skutečnou výstupní hodnotu.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueOutput": {
"type": "bool",
"value": "[true()]"
}
}
}
Výstup z předchozího příkladu je:
Name | Typ | Hodnota |
---|---|---|
trueOutput | Bool | True |
Další kroky
- Popis oddílů v šabloně ARM najdete v tématu Vysvětlení struktury a syntaxe šablon ARM.