Funkcje logiczne dla szablonów usługi ARM
Usługa Resource Manager udostępnia kilka funkcji do porównywania szablonu usługi Azure Resource Manager (szablon usługi ARM):
Napiwek
Zalecamy Bicep , ponieważ oferuje te same możliwości co szablony usługi ARM, a składnia jest łatwiejsza w użyciu. Aby dowiedzieć się więcej, zobacz logiczne funkcje logiczne i operatory logiczne.
oraz
and(arg1, arg2, ...)
Sprawdza, czy wszystkie wartości parametrów są prawdziwe.
Funkcja nie jest obsługiwana and
w Bicep. Zamiast tego użyj operatora &&.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | boolean | Pierwsza wartość do sprawdzenia, czy ma wartość true. |
arg2 | Tak | boolean | Druga wartość do sprawdzenia, czy ma wartość true. |
więcej argumentów | Nie. | boolean | Więcej argumentów, aby sprawdzić, czy są prawdziwe. |
Wartość zwracana
Zwraca wartość True , jeśli wszystkie wartości są prawdziwe; w przeciwnym razie wartość False.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji logicznych.
{
"$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'))]"
}
}
}
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
andExampleOutput | Bool | Fałsz |
lubExampleOutput | Bool | Prawda |
notExampleOutput | Bool | Fałsz |
bool
bool(arg1)
Konwertuje parametr na wartość logiczną.
W Bicep użyj funkcji logicznej bool .
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | ciąg lub int | Wartość, która ma być konwertowana na wartość logiczną. |
Wartość zwracana
Wartość logiczna przekonwertowanej wartości.
Uwagi
Możesz również użyć wartości true() i false(), aby uzyskać wartości logiczne.
Przykłady
W poniższym przykładzie pokazano, jak używać wartości logicznej z ciągiem lub liczbą całkowitą.
{
"$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)]"
}
}
}
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
trueString | Bool | Prawda |
falseString | Bool | Fałsz |
trueInt | Bool | Prawda |
falseInt | Bool | Fałsz |
fałsz
false()
Zwraca wartość false.
Funkcja false
nie jest dostępna w Bicep. Zamiast tego użyj słowa kluczowego false
.
Parametry
Funkcja false nie akceptuje żadnych parametrów.
Wartość zwracana
Wartość logiczna, która jest zawsze fałszem.
Przykład
Poniższy przykład zwraca wartość fałszywą danych wyjściowych.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"falseOutput": {
"type": "bool",
"value": "[false()]"
}
}
}
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
falseOutput | Bool | Fałsz |
jeżeli
if(condition, trueValue, falseValue)
Zwraca wartość na podstawie tego, czy warunek ma wartość true, czy false.
Funkcja nie jest obsługiwana if
w Bicep. Użyj operatora ?: zamiast tego.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
condition | Tak | boolean | Wartość do sprawdzenia, czy jest to prawda, czy fałsz. |
Truevalue | Tak | ciąg, liczba int, obiekt lub tablica | Wartość, która ma być zwracana, gdy warunek ma wartość true. |
Falsevalue | Tak | ciąg, liczba int, obiekt lub tablica | Wartość, która ma być zwracana, gdy warunek ma wartość false. |
Wartość zwracana
Zwraca drugi parametr, gdy pierwszy parametr ma wartość True. W przeciwnym razie zwraca trzeci parametr.
Uwagi
Jeśli warunek ma wartość True, obliczana jest tylko wartość true. Jeśli warunek ma wartość False, obliczana jest tylko wartość false. Za pomocą if
funkcji można uwzględnić wyrażenia, które są tylko warunkowo prawidłowe. Można na przykład odwołać się do zasobu, który istnieje pod jednym warunkiem, ale nie w innym warunku. Przykład warunkowego obliczania wyrażeń przedstawiono w poniższej sekcji.
Przykłady
W poniższym przykładzie pokazano, jak używać if
funkcji.
{
"$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'))]"
}
}
}
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
yesOutput | String | tak |
noOutput | String | nie |
objectOutput | Objekt | { "test": "value1" } |
Poniższy przykładowy szablon pokazuje, jak używać tej funkcji z wyrażeniami, które są tylko warunkowo prawidłowe.
{
"$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)
Konwertuje wartość logiczną na wartość przeciwną.
Funkcja nie jest obsługiwana not
w Bicep. Zamiast tego użyj operatora ! .
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | boolean | Wartość do konwersji. |
Wartość zwracana
Zwraca wartość True , gdy parametr ma wartość False. Zwraca wartość False , gdy parametr ma wartość True.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji logicznych.
{
"$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'))]"
}
}
}
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
andExampleOutput | Bool | Fałsz |
lubExampleOutput | Bool | Prawda |
notExampleOutput | Bool | Fałsz |
W poniższym przykładzie użyto wartości not
z równościami.
{
"$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))]"
}
}
}
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
checkNotEquals | Bool | Prawda |
lub
or(arg1, arg2, ...)
Sprawdza, czy jakakolwiek wartość parametru ma wartość true.
Funkcja nie jest obsługiwana or
w Bicep. Zamiast tego użyj operatora ||.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | boolean | Pierwsza wartość do sprawdzenia, czy ma wartość true. |
arg2 | Tak | boolean | Druga wartość do sprawdzenia, czy ma wartość true. |
więcej argumentów | Nie. | boolean | Więcej argumentów, aby sprawdzić, czy są prawdziwe. |
Wartość zwracana
Zwraca wartość True , jeśli jakakolwiek wartość ma wartość true; w przeciwnym razie wartość False.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji logicznych.
{
"$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'))]"
}
}
}
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
andExampleOutput | Bool | Fałsz |
lubExampleOutput | Bool | Prawda |
notExampleOutput | Bool | Fałsz |
prawda
true()
Zwraca wartość true.
Funkcja true
nie jest dostępna w Bicep. Zamiast tego użyj słowa kluczowego true
.
Parametry
Funkcja true nie akceptuje żadnych parametrów.
Wartość zwracana
Wartość logiczna, która jest zawsze prawdziwa.
Przykład
W poniższym przykładzie zwracana jest prawdziwa wartość wyjściowa.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"trueOutput": {
"type": "bool",
"value": "[true()]"
}
}
}
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
trueOutput | Bool | Prawda |
Następne kroki
- Aby zapoznać się z opisem sekcji w szablonie usługi ARM, zobacz Omówienie struktury i składni szablonów usługi ARM.