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 notrovná.

{
  "$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