Srovnávací funkce pro šablony ARM

Resource Manager poskytuje několik funkcí pro porovnávání v šabloně Azure Resource Manager (šablona ARM):

Tip

Doporučujeme Bicep , protože nabízí stejné funkce jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v článku o logickém operátoru a relačníchoperátorech.

Coalesce

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

Vrátí první hodnotu, která není null z parametrů. Prázdné řetězce, prázdná pole a prázdné objekty nemají hodnotu null.

V nástroji Bicep místo toho použijte ?? operátor . Viz Coalesce ??.

Parametry

Parametr Povinné Typ Popis
arg1 Yes int, string, array nebo object První hodnota, která se má otestovat na hodnotu null.
více args No int, string, array nebo object Více hodnot, které se mají otestovat na hodnotu null.

Vrácená hodnota

Hodnota prvních parametrů, které nemají hodnotu null, což může být řetězec, int, pole nebo objekt. Null, pokud jsou všechny parametry null.

Příklad

Následující příklad šablony ukazuje výstup z různých použití funkce coalesce.

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

Výstup z předchozího příkladu s výchozími hodnotami je:

Název Typ Hodnota
stringOutput Řetězec default
intOutput Int 1
objectOutput Objekt {"first": "default"}
arrayOutput Pole  [1]
emptyOutput Logická hodnota Ano

equals

equals(arg1, arg2)

Zkontroluje, jestli se dvě hodnoty navzájem rovnají.

V nástroji Bicep místo toho použijte == operátor . Viz Rovná se ==.

Parametry

Parametr Povinné Typ Popis
arg1 Yes int, string, array nebo object První hodnota, která má zkontrolovat rovnost.
arg2 Yes int, string, array nebo object Druhá hodnota, která má zkontrolovat rovnost.

Vrácená hodnota

Vrátí hodnotu True , pokud jsou hodnoty rovny; jinak Nepravda.

Poznámky

Funkce equals se s elementem condition často používá k testování, jestli je prostředek nasazený.

{
  "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": {}
}

Příklad

Následující příklad kontroluje rovnost různých typů hodnot. Všechny výchozí hodnoty vrátí hodnotu 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": "a"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "a"
    },
    "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'))]"
    }
  }
}

Výstup z předchozího příkladu s výchozími hodnotami je:

Název Typ Hodnota
checkInts Logická hodnota Ano
checkStrings Logická hodnota Ano
checkArrays Logická hodnota Ano
checkObjects Logická hodnota Ano

Následující příklad šablony nepoužívá sequals.

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

Název Typ Hodnota
checkNotEquals Logická hodnota Ano

greater

greater(arg1, arg2)

Zkontroluje, jestli je první hodnota větší než druhá hodnota.

V nástroji Bicep místo toho použijte > operátor . Viz Větší než >.

Parametry

Parametr Povinné Typ Popis
arg1 Yes int nebo string První hodnota pro větší porovnání.
arg2 Yes int nebo string Druhá hodnota pro větší porovnání.

Vrácená hodnota

Vrátí hodnotu True , pokud je první hodnota větší než druhá hodnota; jinak Nepravda.

Příklad

Následující příklad zkontroluje, jestli je jedna hodnota větší než druhá.

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

Výstup z předchozího příkladu s výchozími hodnotami je:

Název Typ Hodnota
checkInts Logická hodnota Ne
checkStrings Logická hodnota Ano

greaterOrEquals

greaterOrEquals(arg1, arg2)

Zkontroluje, jestli je první hodnota větší nebo rovna druhé hodnotě.

V nástroji Bicep místo toho použijte >= operátor . Viz Větší než nebo rovno >=.

Parametry

Parametr Povinné Typ Popis
arg1 Yes int nebo string První hodnota pro větší nebo stejné porovnání.
arg2 Yes int nebo string Druhá hodnota pro větší nebo stejné porovnání.

Vrácená hodnota

Vrátí hodnotu True , pokud je první hodnota větší než nebo rovna druhé hodnotě; jinak Nepravda.

Příklad

Následující příklad zkontroluje, jestli je jedna hodnota větší nebo rovna druhé hodnotě.

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

Výstup z předchozího příkladu s výchozími hodnotami je:

Název Typ Hodnota
checkInts Logická hodnota Ne
checkStrings Logická hodnota Ano

less

less(arg1, arg2)

Zkontroluje, jestli je první hodnota menší než druhá hodnota.

V nástroji Bicep místo toho použijte < operátor . Viz Menší než <.

Parametry

Parametr Povinné Typ Popis
arg1 Yes int nebo string První hodnota menšího porovnání.
arg2 Yes int nebo string Druhá hodnota menšího porovnání.

Vrácená hodnota

Vrátí hodnotu True , pokud je první hodnota menší než druhá hodnota. jinak Nepravda.

Příklad

Následující příklad zkontroluje, jestli je jedna hodnota menší než druhá.

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

Výstup z předchozího příkladu s výchozími hodnotami je:

Název Typ Hodnota
checkInts Logická hodnota Ano
checkStrings Logická hodnota Ne

lessOrEquals

lessOrEquals(arg1, arg2)

Zkontroluje, jestli je první hodnota menší nebo rovna druhé hodnotě.

V nástroji Bicep místo toho použijte <= operátor . Viz Menší než nebo rovno <=.

Parametry

Parametr Povinné Typ Popis
arg1 Yes int nebo string První hodnota pro porovnání menší nebo rovno.
arg2 Yes int nebo string Druhá hodnota pro porovnání menší nebo rovno.

Vrácená hodnota

Vrátí hodnotu True , pokud je první hodnota menší než nebo rovna druhé hodnotě; jinak Nepravda.

Příklad

Následující příklad zkontroluje, jestli je jedna hodnota menší nebo rovna druhé hodnotě.

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

Výstup z předchozího příkladu s výchozími hodnotami je:

Název Typ Hodnota
checkInts Logická hodnota Ano
checkStrings Logická hodnota Ne

Další kroky