Parametersbestanden maken voor Bicep-implementatie
In plaats van parameters door te geven als inlinewaarden in uw script, kunt u een Bicep-parametersbestand gebruiken met de .bicepparam
bestandsextensie of een JSON-parameterbestand dat de parameterwaarden bevat. In dit artikel wordt beschreven hoe u parametersbestanden maakt.
Notitie
Het bicep-parametersbestand wordt alleen ondersteund in Bicep CLI versie 0.18.4 of hoger, Azure CLI versie 2.47.0 of hoger en Azure PowerShell versie 9.7.1 of hoger.
Aan één Bicep-bestand kunnen meerdere Bicep-parametersbestanden zijn gekoppeld. Elk Bicep-parametersbestand is echter bedoeld voor één bepaald Bicep-bestand. Deze relatie wordt tot stand gebracht met behulp van de using
instructie in het bicep-parametersbestand.
U kunt Bicep-parametersbestanden compileren in JSON-parametersbestanden om te implementeren met een Bicep-bestand. Zie build-params. U kunt ook een JSON-parameterbestand decompileren in een Bicep-parametersbestand. Zie decompile-params.
Parametersbestand
Een parameterbestand gebruikt de volgende indeling:
using '<path>/<file-name>.bicep'
param <first-parameter-name> = <first-value>
param <second-parameter-name> = <second-value>
U kunt de using-instructie gebruiken met Bicep-bestand, ARM JSON-sjablonen, Bicep-modules en sjabloonspecificaties. Voorbeeld:
using './main.bicep'
...
using './azuredeploy.json'
...
using 'br/public:avm/res/storage/storage-account:0.9.0'
...
using 'br:myacr.azurecr.io/bicep/modules/storage:v1'
...
using 'ts:00000000-0000-0000-0000-000000000000/myResourceGroup/storageSpec:1.0'
...
Zie de using-instructie voor meer informatie.
U kunt expressies gebruiken met de standaardwaarde. Voorbeeld:
using 'main.bicep'
param storageName = toLower('MyStorageAccount')
param intValue = 2 + 2
U kunt naar omgevingsvariabelen verwijzen als parameterwaarden. Voorbeeld:
using './main.bicep'
param intFromEnvironmentVariables = int(readEnvironmentVariable('intEnvVariableName'))
U kunt variabelen definiëren en gebruiken. Bicep CLI versie 0.21.X of hoger is vereist voor het gebruik van variabelen in .bicepparam-bestand. Hieronder volgen een aantal voorbeelden:
using './main.bicep'
var storagePrefix = 'myStorage'
param primaryStorageName = '${storagePrefix}Primary'
param secondaryStorageName = '${storagePrefix}Secondary'
using './main.bicep'
var testSettings = {
instanceSize: 'Small'
instanceCount: 1
}
var prodSettings = {
instanceSize: 'Large'
instanceCount: 4
}
param environmentSettings = {
test: testSettings
prod: prodSettings
}
Het is de moeite waard om te vermelden dat het parameterbestand parameterwaarden opslaat als tekst zonder opmaak. Om veiligheidsredenen wordt deze methode niet aanbevolen voor gevoelige waarden, zoals wachtwoorden. Als u een parameter met een gevoelige waarde moet doorgeven, houdt u de waarde in een sleutelkluis. In plaats van de gevoelige waarde toe te voegen aan uw parameterbestand, gebruikt u de functie getSecret om deze op te halen. Zie Azure Key Vault gebruiken om een veilige parameterwaarde door te geven tijdens de bicep-implementatie voor meer informatie.
Parametertype-indelingen
In het volgende voorbeeld ziet u de indelingen van verschillende parametertypen: tekenreeks, geheel getal, booleaanse waarde, matrix en object.
using './main.bicep'
param exampleString = 'test string'
param exampleInt = 2 + 2
param exampleBool = true
param exampleArray = [
'value 1'
'value 2'
]
param exampleObject = {
property1: 'value 1'
property2: 'value 2'
}
Gebruik bicep-syntaxis om objecten en matrices te declareren.
Bestandsnaam
Bicep parameters bestand heeft de bestandsextensie van .bicepparam
.
Als u wilt implementeren in verschillende omgevingen, maakt u meer dan één parameterbestand. Wanneer u de parametersbestanden een naamgeeft, identificeert u het gebruik ervan, zoals ontwikkeling en productie. Gebruik bijvoorbeeld main.dev.bicepparam en main.prod.bicepparam om resources te implementeren.
Parameterwaarden definiëren
Als u wilt bepalen hoe u de parameternamen en -waarden definieert, opent u het Bicep-bestand. Bekijk de parameterssectie van het Bicep-bestand. In de volgende voorbeelden ziet u de parameters uit een Bicep-bestand met de naam main.bicep
.
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'
Het eerste detail in het parameterbestand is de naam van elke parameter. De parameternamen in het parameterbestand moeten overeenkomen met de parameternamen in uw Bicep-bestand.
using 'main.bicep'
param storagePrefix
param storageAccountType
De using
instructie koppelt het Bicep-parametersbestand aan een Bicep-bestand. Zie het gebruik van de instructie voor meer informatie.
Nadat u het trefwoord param
in Visual Studio Code hebt getypt, wordt u gevraagd om de beschikbare parameters en de bijbehorende beschrijvingen uit het gekoppelde Bicep-bestand:
Wanneer u de muisaanwijzer boven een parameternaam beweegt, ziet u het gegevenstype en de beschrijving van de parameter.
Let op het parametertype. De parametertypen in het parameterbestand moeten dezelfde typen gebruiken als uw Bicep-bestand. In dit voorbeeld zijn beide parametertypen tekenreeksen.
using 'main.bicep'
param storagePrefix = ''
param storageAccountType = ''
Controleer het Bicep-bestand op parameters met een standaardwaarde. Als een parameter een standaardwaarde heeft, kunt u een waarde opgeven in het parameterbestand, maar dit is niet vereist. De parameterbestandswaarde overschrijft de standaardwaarde van het Bicep-bestand.
using 'main.bicep'
param storagePrefix = '' // This value must be provided.
param storageAccountType = '' // This value is optional. Bicep will use default value if not provided.
Controleer de toegestane waarden van Bicep en eventuele beperkingen, zoals maximale lengte. Deze waarden geven het bereik van waarden op dat u voor een parameter kunt opgeven. In dit voorbeeld storagePrefix
mogen maximaal 11 tekens zijn en storageAccountType
moet een toegestane waarde worden opgegeven.
using 'main.bicep'
param storagePrefix = 'storage'
param storageAccountType = 'Standard_ZRS'
Parametersbestand genereren
Als u een parameterbestand wilt genereren, hebt u twee opties: via Visual Studio Code of met behulp van de Bicep CLI. Met beide methoden kunt u het parameterbestand afleiden uit een Bicep-bestand. Zie Parametersbestand genereren vanuit Visual Studio Code. Zie Parametersbestand genereren in Bicep CLI.
Bicep-parametersbestand bouwen
Vanuit Bicep CLI kunt u een Bicep-parametersbestand bouwen in een JSON-parametersbestand. Zie buildparametersbestand voor meer informatie.
Bicep-bestand met parametersbestand implementeren
Azure-CLI
Vanuit Azure CLI kunt u een parameterbestand doorgeven met uw Bicep-bestandsimplementatie.
Met Azure CLI versie 2.53.0 of hoger en Bicep CLI versie 0.22.X of hoger kunt u een Bicep-bestand implementeren met behulp van een Bicep-parameterbestand. Met de using
instructie in het Bicep-parametersbestand hoeft u de --template-file
schakeloptie niet op te geven wanneer u een Bicep-parameterbestand voor de --parameters
switch opgeeft.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
U kunt inlineparameters en een locatieparametersbestand gebruiken in dezelfde implementatiebewerking. Voorbeeld:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam \
--parameters storageAccountType=Standard_LRS
Zie Resources implementeren met Bicep en Azure CLI voor meer informatie.
Azure PowerShell
Geef vanuit Azure PowerShell een lokaal parameterbestand door met behulp van de TemplateParameterFile
parameter.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam
U kunt inlineparameters en een locatieparametersbestand gebruiken in dezelfde implementatiebewerking. Voorbeeld:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam `
-storageAccountType Standard_LRS
Zie Resources implementeren met Bicep en Azure PowerShell voor meer informatie. Als u BICEP-bestanden wilt implementeren, hebt u Azure PowerShell versie 5.6.0 of hoger nodig.
Parameterprioriteit
U kunt inlineparameters en een lokaal parameterbestand in dezelfde implementatiebewerking gebruiken. U kunt bijvoorbeeld bepaalde waarden opgeven in het bestand met lokale parameters en andere waarden inline toevoegen tijdens de implementatie. Als u waarden opgeeft voor een parameter in zowel het lokale parameterbestand als inline, heeft de inlinewaarde voorrang.
Het is mogelijk om een extern JSON-parameterbestand te gebruiken door de URI aan het bestand op te geven. Het externe Bicep-parametersbestand wordt momenteel niet ondersteund. Wanneer u een bestand met externe parameters gebruikt, kunt u geen andere waarden inline of vanuit een lokaal bestand doorgeven. Alle inlineparameters worden genegeerd. Geef alle parameterwaarden op in het externe bestand.
Conflicten met parameternamen
Als uw Bicep-bestand een parameter bevat met dezelfde naam als een van de parameters in de PowerShell-opdracht, geeft PowerShell de parameter uit uw Bicep-bestand weer met het achtervoegsel FromTemplate
. Een parameter met de naam ResourceGroupName
in uw Bicep-bestand conflicteert bijvoorbeeld met de ResourceGroupName
parameter in de cmdlet New-AzResourceGroupDeployment . U wordt gevraagd een waarde op te geven voor ResourceGroupNameFromTemplate
. Gebruik parameternamen die niet worden gebruikt voor implementatieopdrachten om deze verwarring te voorkomen.
Volgende stappen
- Zie Parameters in Bicep voor meer informatie over het definiëren van parameters in een Bicep-bestand.
- Zie Azure Key Vault gebruiken om tijdens de implementatie veilige parameterwaarde door te geven om gevoelige waarden op te halen.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor