Vergelijkingsfuncties voor ARM-sjablonen

Resource Manager biedt verschillende functies voor het maken van vergelijkingen in uw ARM-sjabloon (Azure Resource Manager):

Tip

We raden Bicep aan omdat het dezelfde mogelijkheden biedt als ARM-sjablonen en de syntaxis eenvoudiger te gebruiken is. Zie logische operatoren samenvoegen en vergelijkingsoperatoren voor meer informatie.

coalesce

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

Retourneert de eerste niet-null-waarde van de parameters. Lege tekenreeksen, lege matrices en lege objecten zijn niet null.

Gebruik in plaats daarvan de ?? operator in Bicep. Zie Coalesce ??.

Parameters

Parameter Vereist Type Description
arg1 Yes int, tekenreeks, matrix of object De eerste waarde die moet worden getest op null.
meer argumenten No int, tekenreeks, matrix of object Meer waarden om te testen op null.

Retourwaarde

De waarde van de eerste niet-null-parameters, die een tekenreeks, int, matrix of object kunnen zijn. Null als alle parameters null zijn.

Voorbeeld

In de volgende voorbeeldsjabloon ziet u de uitvoer van verschillende toepassingen van samenvoeging.

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

De uitvoer uit het voorgaande voorbeeld met de standaardwaarden is:

Naam Type Waarde
stringOutput Tekenreeks standaardinstelling
intOutput Int 1
objectOutput Object {"first": "default"}
arrayOutput Matrix  [1]
emptyOutput Booleaanse waarde True

is gelijk aan

equals(arg1, arg2)

Hiermee wordt gecontroleerd of twee waarden gelijk zijn aan elkaar.

Gebruik in plaats daarvan de == operator in Bicep. Zie Is gelijk aan ==.

Parameters

Parameter Vereist Type Description
arg1 Yes int, tekenreeks, matrix of object De eerste waarde die moet worden gecontroleerd op gelijkheid.
arg2 Yes int, tekenreeks, matrix of object De tweede waarde die moet worden gecontroleerd op gelijkheid.

Retourwaarde

Retourneert Waar als de waarden gelijk zijn; anders onwaar.

Opmerkingen

De functie gelijk aan wordt vaak gebruikt met het condition element om te testen of een resource is geïmplementeerd.

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

Voorbeeld

In het volgende voorbeeld worden verschillende typen waarden gecontroleerd op gelijkheid. Alle standaardwaarden retourneren Waar.

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

De uitvoer uit het voorgaande voorbeeld met de standaardwaarden is:

Naam Type Waarde
checkInts Booleaanse waarde True
checkStrings Booleaanse waarde True
checkArrays Booleaanse waarde True
checkObjects Booleaanse waarde True

In de volgende voorbeeldsjabloon wordt niet met gelijke waarden gebruikt.

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

De uitvoer van het voorgaande voorbeeld is:

Naam Type Waarde
checkNotEquals Booleaanse waarde True

greater

greater(arg1, arg2)

Hiermee wordt gecontroleerd of de eerste waarde groter is dan de tweede waarde.

In Bicep gebruikt u in plaats daarvan de > operator. Zie Groter dan >.

Parameters

Parameter Vereist Type Description
arg1 Yes int of tekenreeks De eerste waarde voor de grotere vergelijking.
arg2 Yes int of tekenreeks De tweede waarde voor de grotere vergelijking.

Retourwaarde

Retourneert Waar als de eerste waarde groter is dan de tweede waarde; anders onwaar.

Voorbeeld

In het volgende voorbeeld wordt gecontroleerd of de ene waarde groter is dan de andere.

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

De uitvoer van het voorgaande voorbeeld met de standaardwaarden is:

Naam Type Waarde
checkInts Booleaanse waarde False
checkStrings Booleaanse waarde True

greaterOrEquals

greaterOrEquals(arg1, arg2)

Hiermee wordt gecontroleerd of de eerste waarde groter is dan of gelijk is aan de tweede waarde.

In Bicep gebruikt u in plaats daarvan de >= operator. Zie Groter dan of gelijk aan >=.

Parameters

Parameter Vereist Type Description
arg1 Yes int of tekenreeks De eerste waarde voor de grotere of gelijke vergelijking.
arg2 Yes int of tekenreeks De tweede waarde voor de grotere of gelijke vergelijking.

Retourwaarde

Retourneert Waar als de eerste waarde groter is dan of gelijk is aan de tweede waarde; anders onwaar.

Voorbeeld

In het volgende voorbeeld wordt gecontroleerd of de ene waarde groter is dan of gelijk is aan de andere.

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

De uitvoer van het voorgaande voorbeeld met de standaardwaarden is:

Naam Type Waarde
checkInts Booleaanse waarde False
checkStrings Booleaanse waarde True

less

less(arg1, arg2)

Hiermee wordt gecontroleerd of de eerste waarde kleiner is dan de tweede waarde.

In Bicep gebruikt u in plaats daarvan de < operator. Zie Kleiner dan <.

Parameters

Parameter Vereist Type Description
arg1 Yes int of tekenreeks De eerste waarde voor de less-vergelijking.
arg2 Yes int of tekenreeks De tweede waarde voor de less-vergelijking.

Retourwaarde

Retourneert Waar als de eerste waarde kleiner is dan de tweede waarde; anders onwaar.

Voorbeeld

In het volgende voorbeeld wordt gecontroleerd of de ene waarde kleiner is dan de andere.

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

De uitvoer van het voorgaande voorbeeld met de standaardwaarden is:

Naam Type Waarde
checkInts Booleaanse waarde True
checkStrings Booleaanse waarde False

lessOrEquals

lessOrEquals(arg1, arg2)

Hiermee wordt gecontroleerd of de eerste waarde kleiner is dan of gelijk is aan de tweede waarde.

In Bicep gebruikt u in plaats daarvan de <= operator. Zie Kleiner dan of gelijk aan <=.

Parameters

Parameter Vereist Type Description
arg1 Yes int of tekenreeks De eerste waarde voor de vergelijking kleiner of gelijk aan.
arg2 Yes int of tekenreeks De tweede waarde voor de vergelijking kleiner of gelijk aan.

Retourwaarde

Retourneert Waar als de eerste waarde kleiner is dan of gelijk is aan de tweede waarde; anders onwaar.

Voorbeeld

In het volgende voorbeeld wordt gecontroleerd of de ene waarde kleiner is dan of gelijk is aan de andere waarde.

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

De uitvoer van het voorgaande voorbeeld met de standaardwaarden is:

Naam Type Waarde
checkInts Booleaanse waarde True
checkStrings Booleaanse waarde False

Volgende stappen