Parameters in Bicep

In dit artikel wordt beschreven hoe u parameters in een Bicep-bestand definieert en gebruikt. Door verschillende waarden voor parameters op te geven, kunt u een Bicep-bestand opnieuw gebruiken voor verschillende omgevingen.

Resource Manager parameterwaarden worden opgelost voordat de implementatiebewerkingen worden uitgevoerd. Overal waar de parameter wordt gebruikt, Resource Manager deze vervangen door de om opgeloste waarde.

Elke parameter moet worden ingesteld op een van de gegevenstypen.

Microsoft Learn

Zie Herbruikbare Bicep-sjablonen bouwen met parameters op Microsoft Learn voor meer informatie over parameters Microsoft Learn.

Verklaring

Elke parameter heeft een naam en gegevenstype. U kunt eventueel een standaardwaarde opgeven voor de parameter .

param <parameter-name> <parameter-data-type> = <default-value>

Een parameter mag niet dezelfde naam hebben als een variabele, resource, uitvoer of andere parameter in hetzelfde bereik.

In het volgende voorbeeld ziet u basisdeclaraties van parameters.

param demoString string
param demoInt int
param demoBool bool
param demoObject object
param demoArray array

Standaardwaarde

U kunt een standaardwaarde voor een parameter opgeven. De standaardwaarde wordt gebruikt wanneer er geen waarde wordt opgegeven tijdens de implementatie.

param demoParam string = 'Contoso'

U kunt expressies gebruiken met de standaardwaarde. Expressies zijn niet toegestaan met andere parametereigenschappen. U kunt de referentiefunctie of een van de lijstfuncties in de sectie parameters niet gebruiken. Deze functies krijgen de runtime-status van de resource en kunnen niet worden uitgevoerd vóór de implementatie wanneer parameters worden opgelost.

param location string = resourceGroup().location

U kunt een andere parameterwaarde gebruiken om een standaardwaarde te maken. Met de volgende sjabloon wordt een hostplannaam gemaakt op basis van de sitenaam.

param siteName string = 'site${uniqueString(resourceGroup().id)}'
param hostingPlanName string = '${siteName}-plan'

output siteNameOutput string = siteName
output hostingPlanOutput string = hostingPlanName

Decorateurs

Parameters gebruiken verantwoordelijken voor beperkingen of metagegevens. De makers hebben de indeling @expression en worden boven de declaratie van de parameter geplaatst. U kunt een parameter als veilig markeren, toegestane waarden opgeven, de minimum- en maximumlengte voor een tekenreeks instellen, de minimum- en maximumwaarde voor een geheel getal instellen en een beschrijving van de parameter opgeven.

In het volgende voorbeeld ziet u twee veelvoorkomende toepassingen voor voorteurs.

@secure()
param demoPassword string

@description('Must be at least Standard_A3 to support 2 NICs.')
param virtualMachineSize string = 'Standard_DS1_v2'

In de volgende tabel worden de beschikbare makers beschreven en wordt beschreven hoe u deze kunt gebruiken.

Decorator Van toepassing op Argument Beschrijving
Toegestaan all matrix Toegestane waarden voor de parameter . Gebruik deze bewaarder om ervoor te zorgen dat de gebruiker de juiste waarden levert.
Beschrijving all tekenreeks Tekst waarin wordt uitgelegd hoe u de parameter gebruikt. De beschrijving wordt weergegeven voor gebruikers via de portal.
Maxlength matrix, tekenreeks int De maximale lengte voor tekenreeks- en matrixparameters. De waarde is inclusief.
maxValue int int De maximumwaarde voor de parameter integer. Deze waarde is inclusief.
metagegevens all object Aangepaste eigenschappen die moeten worden toegepast op de parameter . Kan een beschrijvings-eigenschap bevatten die gelijk is aan de beschrijvingsmaker.
minLength matrix, tekenreeks int De minimale lengte voor tekenreeks- en matrixparameters. De waarde is inclusief.
minValue int int De minimumwaarde voor de parameter integer. Deze waarde is inclusief.
Veilige tekenreeks, object geen Markeert de parameter als veilig. De waarde voor een beveiligde parameter wordt niet opgeslagen in de implementatiegeschiedenis en wordt niet geregistreerd. Zie Beveiligde tekenreeksen en objecten voor meer informatie.

De makers zijn in de sys-naamruimte. Als u eenator wilt onderscheiden van een ander item met dezelfde naam, moet u deator vooraf laten gaan door sys . Als uw Bicep-bestand bijvoorbeeld een parameter bevat met de naam , moet u de description sys-naamruimte toevoegen wanneer u de beschrijvingsdeler gebruikt.

@sys.description('The name of the instance.')
param name string
@sys.description('The description of the instance to display.')
param description string

De beschikbare aandelers worden beschreven in de volgende secties.

Beveiligde parameters

U kunt tekenreeks- of objectparameters als veilig markeren. De waarde van een beveiligde parameter wordt niet opgeslagen in de implementatiegeschiedenis en wordt niet geregistreerd.

@secure()
param demoPassword string

@secure()
param demoSecretObject object

Toegestane waarden

U kunt toegestane waarden voor een parameter definiëren. U geeft de toegestane waarden op in een matrix. De implementatie mislukt tijdens de validatie als er een waarde wordt doorgegeven voor de parameter die niet een van de toegestane waarden is.

@allowed([
  'one'
  'two'
])
param demoEnum string

Lengtebeperkingen

U kunt minimum- en maximumlengten opgeven voor tekenreeks- en matrixparameters. U kunt een of beide beperkingen instellen. Voor tekenreeksen geeft de lengte het aantal tekens aan. Voor matrices geeft de lengte het aantal items in de matrix aan.

In het volgende voorbeeld worden twee parameters gedeclareert. Eén parameter is voor een opslagaccountnaam die 3-24 tekens moet bevatten. De andere parameter is een matrix die uit 1-5 items moet hebben.

@minLength(3)
@maxLength(24)
param storageAccountName string

@minLength(1)
@maxLength(5)
param appNames array

Beperkingen voor gehele getallen

U kunt minimum- en maximumwaarden instellen voor parameters voor gehele getallen. U kunt een of beide beperkingen instellen.

@minValue(1)
@maxValue(12)
param month int

Beschrijving

Voeg een beschrijving toe aan de parameter om gebruikers inzicht te geven in de waarde die ze moeten opgeven. Bij het implementeren van de sjabloon via de portal wordt de tekst van de beschrijving automatisch gebruikt als tip voor die parameter. Voeg alleen een beschrijving toe wanneer de tekst meer informatie biedt dan kan worden afgeleid van de parameternaam.

@description('Must be at least Standard_A3 to support 2 NICs.')
param virtualMachineSize string = 'Standard_DS1_v2'

Parameter gebruiken

Als u wilt verwijzen naar de waarde voor een parameter, gebruikt u de parameternaam. In het volgende voorbeeld wordt een parameterwaarde gebruikt voor de naam van een sleutelkluis.

param vaultName string = 'keyVault${uniqueString(resourceGroup().id)}'

resource keyvault 'Microsoft.KeyVault/vaults@2019-09-01' = {
  name: vaultName
  ...
}

Objecten als parameters

Het kan eenvoudiger zijn om gerelateerde waarden te organiseren door ze door te geven als een -object. Deze aanpak vermindert ook het aantal parameters in de sjabloon.

In het volgende voorbeeld ziet u een parameter die een -object is. De standaardwaarde toont de verwachte eigenschappen voor het object. Deze eigenschappen worden gebruikt bij het definiëren van de resource die moet worden geïmplementeerd.

param vNetSettings object = {
  name: 'VNet1'
  location: 'eastus'
  addressPrefixes: [
    {
      name: 'firstPrefix'
      addressPrefix: '10.0.0.0/22'
    }
  ]
  subnets: [
    {
      name: 'firstSubnet'
      addressPrefix: '10.0.0.0/24'
    }
    {
      name: 'secondSubnet'
      addressPrefix: '10.0.1.0/24'
    }
  ]
}

resource vnet 'Microsoft.Network/virtualNetworks@2020-06-01' = {
  name: vNetSettings.name
  location: vNetSettings.location
  properties: {
    addressSpace: {
      addressPrefixes: [
        vNetSettings.addressPrefixes[0].addressPrefix
      ]
    }
    subnets: [
      {
        name: vNetSettings.subnets[0].name
        properties: {
          addressPrefix: vNetSettings.subnets[0].addressPrefix
        }
      }
      {
        name: vNetSettings.subnets[1].name
        properties: {
          addressPrefix: vNetSettings.subnets[1].addressPrefix
        }
      }
    ]
  }
}

Volgende stappen

  • Zie Inzicht in de structuur en syntaxis van Bicep-bestandenvoor meer informatie over de beschikbare eigenschappen voor parameters.
  • Zie Create a Bicep parameter file (Een Bicep-parameterbestandmaken) voor meer informatie over het doorgeven van parameterwaarden als een bestand.