Logiska funktioner för ARM-mallar

Resource Manager innehåller flera funktioner för att göra jämförelser i din Azure Resource Manager-mall (ARM-mall):

Dricks

Vi rekommenderar Bicep eftersom det erbjuder samma funktioner som ARM-mallar och syntaxen är enklare att använda. Mer information finns i den logiska funktionen bool och logiska operatorer.

and

and(arg1, arg2, ...)

Kontrollerar om alla parametervärden är sanna.

Funktionen and stöds inte i Bicep. Använd &-operatorn i stället.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja boolean Det första värdet för att kontrollera om är sant.
arg2 Ja boolean Det andra värdet för att kontrollera om är sant.
fler argument Nej boolean Fler argument för att kontrollera om är sanna.

Returvärde

Returnerar Sant om alla värden är sanna, annars False.

Exempel

I följande exempel visas hur du använder logiska funktioner.

{
  "$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'))]"
    }
  }
}

Utdata från föregående exempel är:

Namn Typ Värde
andExampleOutput Bool Falsk
orExampleOutput Bool Sant
notExampleOutput Bool Falsk

bool

bool(arg1)

Konverterar parametern till ett booleskt värde.

I Bicep använder du den logiska funktionen bool .

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja sträng eller int Värdet som ska konverteras till ett booleskt värde.

Returvärde

Ett booleskt värde för det konverterade värdet.

Anmärkningar

Du kan också använda true() och false() för att hämta booleska värden.

Exempel

I följande exempel visas hur du använder bool med en sträng eller ett heltal.

{
  "$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)]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
trueString Bool Sant
falseString Bool Falsk
trueInt Bool Sant
falseInt Bool Falsk

falskt

false()

Returnerar false.

Funktionen false är inte tillgänglig i Bicep. Använd nyckelordet false i stället.

Parametrar

Funktionen false accepterar inga parametrar.

Returvärde

Ett booleskt värde som alltid är falskt.

Exempel

I följande exempel returneras ett falskt utdatavärde.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "falseOutput": {
      "type": "bool",
      "value": "[false()]"
    }
  }
}

Utdata från föregående exempel är:

Namn Typ Värde
falseOutput Bool Falsk

if

if(condition, trueValue, falseValue)

Returnerar ett värde baserat på om ett villkor är sant eller falskt.

Funktionen if stöds inte i Bicep. Använd operatorn ?: i stället.

Parametrar

Parameter Obligatoriskt Type Beskrivning
villkor Ja boolean Värdet för att kontrollera om det är sant eller falskt.
trueValue Ja sträng, int, objekt eller matris Värdet som ska returneras när villkoret är sant.
falseValue Ja sträng, int, objekt eller matris Värdet som ska returneras när villkoret är falskt.

Returvärde

Returnerar den andra parametern när den första parametern är True. Annars returneras den tredje parametern.

Anmärkningar

När villkoret är Sant utvärderas endast det sanna värdet. När villkoret är False utvärderas endast värdet false. if Med funktionen kan du inkludera uttryck som endast är villkorligt giltiga. Du kan till exempel referera till en resurs som finns under ett villkor men inte under det andra villkoret. Ett exempel på villkorlig utvärdering av uttryck visas i följande avsnitt.

Exempel

I följande exempel visas hur du if använder funktionen.

{
  "$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'))]"
    }
  }
}

Utdata från föregående exempel är:

Namn Typ Värde
yesOutput String ja
noOutput String nej
objectOutput Objekt { "test": "value1" }

Följande exempelmall visar hur du använder den här funktionen med uttryck som endast är villkorligt giltiga.

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

Konverterar booleskt värde till dess motsatta värde.

Funktionen not stöds inte i Bicep. Använd operatorn ! i stället.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja boolean Värdet som ska konverteras.

Returvärde

Returnerar Sant när parametern är False. Returnerar False när parametern är True.

Exempel

I följande exempel visas hur du använder logiska funktioner.

{
  "$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'))]"
    }
  }
}

Utdata från föregående exempel är:

Namn Typ Värde
andExampleOutput Bool Falsk
orExampleOutput Bool Sant
notExampleOutput Bool Falsk

I följande exempel används not med lika med.

{
  "$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))]"
    }
  }
}

Utdata från föregående exempel är:

Namn Typ Värde
checkNotEquals Bool Sant

eller

or(arg1, arg2, ...)

Kontrollerar om ett parametervärde är sant.

Funktionen or stöds inte i Bicep. Använd operatorn || i stället.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja boolean Det första värdet för att kontrollera om är sant.
arg2 Ja boolean Det andra värdet för att kontrollera om är sant.
fler argument Nej boolean Fler argument för att kontrollera om är sanna.

Returvärde

Returnerar Sant om något värde är sant, annars Falskt.

Exempel

I följande exempel visas hur du använder logiska funktioner.

{
  "$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'))]"
    }
  }
}

Utdata från föregående exempel är:

Namn Typ Värde
andExampleOutput Bool Falsk
orExampleOutput Bool Sant
notExampleOutput Bool Falsk

true

true()

Returnerar "sant".

Funktionen true är inte tillgänglig i Bicep. Använd nyckelordet true i stället.

Parametrar

Den sanna funktionen accepterar inga parametrar.

Returvärde

Ett booleskt värde som alltid är sant.

Exempel

I följande exempel returneras ett sant utdatavärde.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "trueOutput": {
      "type": "bool",
      "value": "[true()]"
    }
  }
}

Utdata från föregående exempel är:

Namn Typ Värde
trueOutput Bool Sant

Nästa steg