Parametry v bicep
Tento článek popisuje, jak definovat a používat parametry v souboru bicep. Zadáním různých hodnot pro parametry můžete znovu použít soubor bicep pro různá prostředí.
Správce prostředků řeší hodnoty parametrů před spuštěním operací nasazení. Všude, kde je použit parametr, Správce prostředků ho nahradí vyřešenou hodnotou.
Každý parametr musí být nastaven na jeden z datových typů.
Microsoft Learn
Další informace o parametrech a o praktických pokynech najdete v tématu sestavení opakovaně použitelných šablon bicep pomocí parametrů na Microsoft Learn.
Deklarace
Každý parametr má název a datový typ. Volitelně můžete zadat výchozí hodnotu parametru.
param <parameter-name> <parameter-data-type> = <default-value>
Parametr nemůže mít stejný název jako proměnná, prostředek, výstup nebo jiný parametr ve stejném oboru.
Následující příklad ukazuje základní deklarace parametrů.
param demoString string
param demoInt int
param demoBool bool
param demoObject object
param demoArray array
Výchozí hodnota
Pro parametr můžete zadat výchozí hodnotu. Výchozí hodnota se použije, když během nasazování není zadaná hodnota.
param demoParam string = 'Contoso'
Můžete použít výrazy s výchozí hodnotou. Výrazy nejsou povoleny s jinými vlastnostmi parametrů. V části Parameters (parametry) nemůžete použít odkazovou funkci ani žádnou z funkcí seznamu . Tyto funkce získávají běhový stav prostředku a nelze je provést před nasazením, když jsou parametry vyřešeny.
param location string = resourceGroup().location
K vytvoření výchozí hodnoty můžete použít jinou hodnotu parametru. Následující šablona vytvoří název plánu hostitele z názvu webu.
param siteName string = 'site${uniqueString(resourceGroup().id)}'
param hostingPlanName string = '${siteName}-plan'
output siteNameOutput string = siteName
output hostingPlanOutput string = hostingPlanName
Dekoratéry
Parametry používají dekoratéry pro omezení nebo metadata. Dekoratéry jsou ve formátu @expression a jsou umístěné nad deklarací parametru. Můžete označit parametr jako zabezpečený, zadat povolené hodnoty, nastavit minimální a maximální délku řetězce, nastavit minimální a maximální hodnotu pro celé číslo a zadat popis parametru.
Následující příklad ukazuje dva běžné použití pro dekoratéry.
@secure()
param demoPassword string
@description('Must be at least Standard_A3 to support 2 NICs.')
param virtualMachineSize string = 'Standard_DS1_v2'
V následující tabulce jsou popsány dostupné dekoratéry a jejich použití.
| Dekoratér | Platí pro | Argument | Popis |
|---|---|---|---|
| povolené | Vše | array | Povolené hodnoty pro parametr Pomocí tohoto dekoratéru zajistěte, aby uživatel poskytoval správné hodnoty. |
| název | Vše | řetězec | Text, který vysvětluje, jak použít parametr Popis se uživatelům zobrazí prostřednictvím portálu. |
| maxLength | pole, řetězec | int | Maximální délka parametrů řetězce a pole. Hodnota je včetně. |
| maxValue | int | int | Maximální hodnota parametru celého čísla. Tato hodnota je včetně. |
| zprostředkovatele identity | Vše | object | Vlastní vlastnosti, které se mají použít u parametru Může zahrnovat vlastnost Description, která je ekvivalentní dekoratér popisu. |
| minLength | pole, řetězec | int | Minimální délka parametrů řetězce a pole. Hodnota je včetně. |
| minValue | int | int | Minimální hodnota pro celočíselný parametr. Tato hodnota je včetně. |
| požadavk | řetězec, objekt | žádné | Označí parametr jako zabezpečený. Hodnota zabezpečeného parametru se neuloží do historie nasazení a není zaprotokolovaná. Další informace najdete v tématu zabezpečení řetězců a objektů. |
Dekoratéry jsou v oboru názvů Sys. Pokud potřebujete odlišit dekoratér z jiné položky se stejným názvem, dekoratér s sys . Například pokud váš soubor bicep obsahuje parametr s názvem, je description nutné při použití parametru Description dekoratér přidat obor názvů Sys.
@sys.description('The name of the instance.')
param name string
@sys.description('The description of the instance to display.')
param description string
Dostupné dekoratéry jsou popsány v následujících částech.
Zabezpečené parametry
Parametry řetězce nebo objektu můžete označit jako zabezpečené. Hodnota zabezpečeného parametru se neuloží do historie nasazení a není zaprotokolovaná.
@secure()
param demoPassword string
@secure()
param demoSecretObject object
Povolené hodnoty
Můžete definovat povolené hodnoty pro parametr. V poli zadáte povolené hodnoty. Nasazení se během ověřování nezdařilo, pokud je hodnota předána pro parametr, který není jednou z povolených hodnot.
@allowed([
'one'
'two'
])
param demoEnum string
Omezení délky
Můžete zadat minimální a maximální délku pro parametry řetězce a pole. Můžete nastavit jedno nebo obě omezení. Pro řetězce označuje Délka počet znaků. Pro pole length určuje počet položek v poli.
Následující příklad deklaruje dva parametry. Jeden parametr je pro název účtu úložiště, který musí mít 3-24 znaků. Druhým parametrem je pole, které musí mít od 1-5 položek.
@minLength(3)
@maxLength(24)
param storageAccountName string
@minLength(1)
@maxLength(5)
param appNames array
Celočíselná omezení
Můžete nastavit minimální a maximální hodnoty pro celočíselné parametry. Můžete nastavit jedno nebo obě omezení.
@minValue(1)
@maxValue(12)
param month int
Popis
Aby uživatelé mohli porozumět hodnotě, kterou chcete poskytnout, přidejte do parametru popis. Při nasazování šablony prostřednictvím portálu se text popisu automaticky použije jako Tip pro tento parametr. Pokud text poskytne více informací, než lze odvodit z názvu parametru, přidejte pouze popis.
@description('Must be at least Standard_A3 to support 2 NICs.')
param virtualMachineSize string = 'Standard_DS1_v2'
Použít parametr
Chcete-li odkazovat na hodnotu parametru, použijte název parametru. Následující příklad používá hodnotu parametru pro název trezoru klíčů.
param vaultName string = 'keyVault${uniqueString(resourceGroup().id)}'
resource keyvault 'Microsoft.KeyVault/vaults@2019-09-01' = {
name: vaultName
...
}
Objekty jako parametry
Můžete snadněji organizovat související hodnoty jejich předáním v podobě objektu. Tento přístup také snižuje počet parametrů v šabloně.
Následující příklad ukazuje parametr, který je objektem. Výchozí hodnota zobrazuje očekávané vlastnosti objektu. Tyto vlastnosti se používají při definování prostředku, který se má nasadit.
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
}
}
]
}
}
Další kroky
- Další informace o dostupných vlastnostech parametrů naleznete v tématu pochopení struktury a syntaxe souborů bicep.
- Další informace o předávání hodnot parametrů jako souboru najdete v tématu Vytvoření souboru parametrů bicep.