Delen via


Logische functies voor ARM-sjablonen

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

Tip

We raden Bicep aan omdat het dezelfde mogelijkheden biedt als ARM-sjablonen en de syntaxis gemakkelijker te gebruiken is. Zie de logische boolfunctie en logische operators voor meer informatie.

en

and(arg1, arg2, ...)

Controleert of alle parameterwaarden waar zijn.

De and functie wordt niet ondersteund in Bicep. Gebruik in plaats daarvan de operator && .

Parameters

Parameter Vereist Type Description
arg1 Ja boolean De eerste waarde om te controleren of waar is.
arg2 Ja boolean De tweede waarde om te controleren of waar is.
meer argumenten Nee boolean Meer argumenten om te controleren of waar is.

Retourwaarde

Retourneert Waar als alle waarden waar zijn; anders onwaar.

Voorbeelden

In het volgende voorbeeld ziet u hoe u logische functies gebruikt.

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

De uitvoer uit het voorgaande voorbeeld is:

Name Type Weergegeven als
andExampleOutput Bool Onwaar
orExampleOutput Bool Waar
notExampleOutput Bool Onwaar

bool

bool(arg1)

Converteert de parameter naar een Booleaanse waarde.

Gebruik in Bicep de logische boolfunctie .

Parameters

Parameter Vereist Type Description
arg1 Ja tekenreeks of int De waarde die moet worden geconverteerd naar een Booleaanse waarde.

Retourwaarde

Een Booleaanse waarde van de geconverteerde waarde.

Opmerkingen

U kunt ook true() en false() gebruiken om booleaanse waarden op te halen.

Voorbeelden

In het volgende voorbeeld ziet u hoe u bool gebruikt met een tekenreeks of geheel getal.

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

De uitvoer uit het voorgaande voorbeeld met de standaardwaarden is:

Name Type Weergegeven als
trueString Bool Waar
falseString Bool Onwaar
trueInt Bool Waar
falseInt Bool Onwaar

false

false()

Retourneert onwaar.

De false functie is niet beschikbaar in Bicep. Gebruik in plaats daarvan het false trefwoord.

Parameters

De functie False accepteert geen parameters.

Retourwaarde

Een Booleaanse waarde die altijd onwaar is.

Opmerking

In het volgende voorbeeld wordt een valse uitvoerwaarde geretourneerd.

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

De uitvoer uit het voorgaande voorbeeld is:

Name Type Weergegeven als
falseOutput Bool Onwaar

if

if(condition, trueValue, falseValue)

Retourneert een waarde op basis van of een voorwaarde waar of onwaar is.

De if functie wordt niet ondersteund in Bicep. Gebruik in plaats daarvan de operator ?:

Parameters

Parameter Vereist Type Description
voorwaarde Ja boolean De waarde om te controleren of deze waar of onwaar is.
trueValue Ja tekenreeks, int, object of matrix De waarde die moet worden geretourneerd wanneer de voorwaarde waar is.
falseValue Ja tekenreeks, int, object of matrix De waarde die moet worden geretourneerd wanneer de voorwaarde onwaar is.

Retourwaarde

Retourneert de tweede parameter wanneer de eerste parameter Waar is. Anders wordt de derde parameter geretourneerd.

Opmerkingen

Wanneer de voorwaarde Waar is, wordt alleen de werkelijke waarde geëvalueerd. Wanneer de voorwaarde Onwaar is, wordt alleen de false-waarde geëvalueerd. Met de if functie kunt u expressies opnemen die alleen voorwaardelijk geldig zijn. U kunt bijvoorbeeld verwijzen naar een resource die onder één voorwaarde bestaat, maar niet onder de andere voorwaarde. In de volgende sectie ziet u een voorbeeld van voorwaardelijke evaluatie van expressies.

Voorbeelden

In het volgende voorbeeld ziet u hoe u de if functie gebruikt.

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

De uitvoer uit het voorgaande voorbeeld is:

Name Type Weergegeven als
YesOutput String ja
noOutput String nee
objectOutput Object { "test": "value1" }

In de volgende voorbeeldsjabloon ziet u hoe u deze functie gebruikt met expressies die alleen voorwaardelijk geldig zijn.

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

Converteert booleaanse waarde naar de tegenovergestelde waarde.

De not functie wordt niet ondersteund in Bicep. Gebruik in plaats daarvan de operator !.

Parameters

Parameter Vereist Type Description
arg1 Ja boolean De waarde die moet worden geconverteerd.

Retourwaarde

Retourneert Waar wanneer de parameter Onwaar is. Retourneert Onwaar wanneer de parameter Waar is.

Voorbeelden

In het volgende voorbeeld ziet u hoe u logische functies gebruikt.

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

De uitvoer uit het voorgaande voorbeeld is:

Name Type Weergegeven als
andExampleOutput Bool Onwaar
orExampleOutput Bool Waar
notExampleOutput Bool Onwaar

In het volgende voorbeeld wordt not gebruikgemaakt van gelijke waarden.

{
  "$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 uit het voorgaande voorbeeld is:

Name Type Weergegeven als
checkNotEquals Bool Waar

or

or(arg1, arg2, ...)

Hiermee wordt gecontroleerd of een parameterwaarde waar is.

De or functie wordt niet ondersteund in Bicep. Gebruik in plaats daarvan de operator ||.

Parameters

Parameter Vereist Type Description
arg1 Ja boolean De eerste waarde om te controleren of waar is.
arg2 Ja boolean De tweede waarde om te controleren of waar is.
meer argumenten Nee boolean Meer argumenten om te controleren of waar is.

Retourwaarde

Retourneert Waar als een waarde waar is; anders onwaar.

Voorbeelden

In het volgende voorbeeld ziet u hoe u logische functies gebruikt.

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

De uitvoer uit het voorgaande voorbeeld is:

Name Type Weergegeven als
andExampleOutput Bool Onwaar
orExampleOutput Bool Waar
notExampleOutput Bool Onwaar

true

true()

Retourneert true.

De true functie is niet beschikbaar in Bicep. Gebruik in plaats daarvan het true trefwoord.

Parameters

De functie True accepteert geen parameters.

Retourwaarde

Een Booleaanse waarde die altijd waar is.

Opmerking

In het volgende voorbeeld wordt een werkelijke uitvoerwaarde geretourneerd.

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

De uitvoer uit het voorgaande voorbeeld is:

Name Type Weergegeven als
trueOutput Bool Waar

Volgende stappen