Jämförelsefunktioner 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 operatorn och jämförelseoperatorerna .

sammansmälta

coalesce(arg1, arg2, arg3, ...)

Returnerar det första värdet som inte är null från parametrarna. Tomma strängar, tomma matriser och tomma objekt är inte null.

I Bicep använder du operatorn ?? i stället. Se Coalesce ??.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja int, string, array eller object Det första värdet som ska testas för null.
mer args Nej int, string, array eller object Fler värden att testa för null.

Returvärde

Värdet för de första parametrarna som inte är null, som kan vara en sträng, int, matris eller objekt. Null om alla parametrar är null.

Exempel

Följande exempelmall visar utdata från olika användningar av sammanslogning.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "null1": null,
        "null2": null,
        "string": "default",
        "int": 1,
        "object": { "first": "default" },
        "array": [ 1 ]
      }
    }
  },
  "resources": [
  ],
  "outputs": {
    "stringOutput": {
      "type": "string",
      "value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').string)]"
    },
    "intOutput": {
      "type": "int",
      "value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').int)]"
    },
    "objectOutput": {
      "type": "object",
      "value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').object)]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').array)]"
    },
    "emptyOutput": {
      "type": "bool",
      "value": "[empty(coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2))]"
    }
  }
}

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

Namn Typ Värde
stringOutput String standard
intOutput Int 1
objectOutput Objekt {"first": "default"}
arrayOutput Matris [1]
emptyOutput Bool Sant

equals

equals(arg1, arg2)

Kontrollerar om två värden är identiska. Jämförelsen är skiftlägeskänslig.

I Bicep använder du operatorn == i stället. Se Lika med ==.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja int, string, array eller object Det första värdet för att söka efter likhet.
arg2 Ja int, string, array eller object Det andra värdet för att söka efter likhet.

Returvärde

Returnerar Sant om värdena är lika med, annars False.

Kommentarer

Funktionen equals används ofta med elementet condition för att testa om en resurs har distribuerats.

{
  "condition": "[equals(parameters('newOrExisting'),'new')]",
  "type": "Microsoft.Storage/storageAccounts",
  "name": "[variables('storageAccountName')]",
  "apiVersion": "2022-09-01",
  "location": "[resourceGroup().location]",
  "sku": {
    "name": "[variables('storageAccountType')]"
  },
  "kind": "Storage",
  "properties": {}
}

Exempel

I följande exempel kontrolleras olika typer av värden för likhet. Alla standardvärden returnerar True.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstInt": {
      "type": "int",
      "defaultValue": 1
    },
    "secondInt": {
      "type": "int",
      "defaultValue": 1
    },
    "firstString": {
      "type": "string",
      "defaultValue": "demo"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "Demo"
    },
    "firstArray": {
      "type": "array",
      "defaultValue": [ "a", "b" ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [ "a", "b" ]
    },
    "firstObject": {
      "type": "object",
      "defaultValue": { "a": "b" }
    },
    "secondObject": {
      "type": "object",
      "defaultValue": { "a": "b" }
    }
  },
  "resources": [
  ],
  "outputs": {
    "checkInts": {
      "type": "bool",
      "value": "[equals(parameters('firstInt'), parameters('secondInt') )]"
    },
    "checkStrings": {
      "type": "bool",
      "value": "[equals(parameters('firstString'), parameters('secondString'))]"
    },
    "checkArrays": {
      "type": "bool",
      "value": "[equals(parameters('firstArray'), parameters('secondArray'))]"
    },
    "checkObjects": {
      "type": "bool",
      "value": "[equals(parameters('firstObject'), parameters('secondObject'))]"
    }
  }
}

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

Namn Typ Värde Kommentar
checkInts Bool Sant
checkStrings Bool Falsk Resultatet beror false på att jämförelsen är skiftlägeskänslig.
checkArrays Bool Sant
checkObjects Bool Sant

I följande exempelmall används inte 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

greater

greater(arg1, arg2)

Kontrollerar om det första värdet är större än det andra värdet.

I Bicep använder du operatorn > i stället. Se Större än >.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja int eller sträng Det första värdet för den större jämförelsen.
arg2 Ja int eller sträng Det andra värdet för den större jämförelsen.

Returvärde

Returnerar Sant om det första värdet är större än det andra värdet, annars Falskt.

Exempel

I följande exempel kontrolleras om det ena värdet är större än det andra.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstInt": {
      "type": "int",
      "defaultValue": 1
    },
    "secondInt": {
      "type": "int",
      "defaultValue": 2
    },
    "firstString": {
      "type": "string",
      "defaultValue": "A"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    }
  },
  "resources": [
  ],
  "outputs": {
    "checkInts": {
      "type": "bool",
      "value": "[greater(parameters('firstInt'), parameters('secondInt') )]"
    },
    "checkStrings": {
      "type": "bool",
      "value": "[greater(parameters('firstString'), parameters('secondString'))]"
    }
  }
}

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

Namn Typ Värde
checkInts Bool Falsk
checkStrings Bool Sant

greaterOrEquals

greaterOrEquals(arg1, arg2)

Kontrollerar om det första värdet är större än eller lika med det andra värdet.

I Bicep använder du operatorn >= i stället. Se Större än eller lika med >=.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja int eller sträng Det första värdet för jämförelsen större eller lika med.
arg2 Ja int eller sträng Det andra värdet för jämförelsen större eller lika med.

Returvärde

Returnerar True om det första värdet är större än eller lika med det andra värdet, annars False.

Exempel

I följande exempel kontrolleras om det ena värdet är större än eller lika med det andra.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstInt": {
      "type": "int",
      "defaultValue": 1
    },
    "secondInt": {
      "type": "int",
      "defaultValue": 2
    },
    "firstString": {
      "type": "string",
      "defaultValue": "A"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    }
  },
  "resources": [
  ],
  "outputs": {
    "checkInts": {
      "type": "bool",
      "value": "[greaterOrEquals(parameters('firstInt'), parameters('secondInt') )]"
    },
    "checkStrings": {
      "type": "bool",
      "value": "[greaterOrEquals(parameters('firstString'), parameters('secondString'))]"
    }
  }
}

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

Namn Typ Värde
checkInts Bool Falsk
checkStrings Bool Sant

less

less(arg1, arg2)

Kontrollerar om det första värdet är mindre än det andra värdet.

I Bicep använder du operatorn < i stället. Se Mindre än <.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja int eller sträng Det första värdet för den mindre jämförelsen.
arg2 Ja int eller sträng Det andra värdet för den mindre jämförelsen.

Returvärde

Returnerar Sant om det första värdet är mindre än det andra värdet, annars False.

Exempel

I följande exempel kontrolleras om det ena värdet är mindre än det andra.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstInt": {
      "type": "int",
      "defaultValue": 1
    },
    "secondInt": {
      "type": "int",
      "defaultValue": 2
    },
    "firstString": {
      "type": "string",
      "defaultValue": "A"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    }
  },
  "resources": [
  ],
  "outputs": {
    "checkInts": {
      "type": "bool",
      "value": "[less(parameters('firstInt'), parameters('secondInt') )]"
    },
    "checkStrings": {
      "type": "bool",
      "value": "[less(parameters('firstString'), parameters('secondString'))]"
    }
  }
}

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

Namn Typ Värde
checkInts Bool Sant
checkStrings Bool Falsk

lessOrEquals

lessOrEquals(arg1, arg2)

Kontrollerar om det första värdet är mindre än eller lika med det andra värdet.

I Bicep använder du operatorn <= i stället. Se Mindre än eller lika med <=.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja int eller sträng Det första värdet för jämförelsen mindre eller lika med.
arg2 Ja int eller sträng Det andra värdet för jämförelsen mindre eller lika med.

Returvärde

Returnerar Sant om det första värdet är mindre än eller lika med det andra värdet, annars False.

Exempel

I följande exempel kontrolleras om det ena värdet är mindre än eller lika med det andra.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstInt": {
      "type": "int",
      "defaultValue": 1
    },
    "secondInt": {
      "type": "int",
      "defaultValue": 2
    },
    "firstString": {
      "type": "string",
      "defaultValue": "A"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    }
  },
  "resources": [
  ],
  "outputs": {
    "checkInts": {
      "type": "bool",
      "value": "[lessOrEquals(parameters('firstInt'), parameters('secondInt') )]"
    },
    "checkStrings": {
      "type": "bool",
      "value": "[lessOrEquals(parameters('firstString'), parameters('secondString'))]"
    }
  }
}

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

Namn Typ Värde
checkInts Bool Sant
checkStrings Bool Falsk

Nästa steg