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