Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här regeln hittar modulparametrar som används för resursplatser och som oavsiktligt kan vara ett oväntat värde.
Anmärkning
Den här regeln är inaktiverad som standard. Ändra nivån i bicepconfig.json för att aktivera den.
Linterregelkod
Använd följande värde i Bicep-konfigurationsfilen för att anpassa regelinställningar:
explicit-values-for-loc-params
Lösning
När du använder en modul ska alla platsrelaterade parametrar som har ett standardvärde tilldelas ett explicit värde. Platsrelaterade parametrar inkluderar parametrar som har ett standardvärde som refererar resourceGroup().location till eller deployment().location även alla parametrar som refereras från en resurss platsegenskap.
En parameter som är standard för en resursgrupps eller distributions plats är praktisk när en bicep-fil används som en huvuddistributionsmall. Men när ett sådant standardvärde används i en modul kan det orsaka oväntat beteende om huvudmallens resurser inte finns i samma region som resursgruppen.
Exempel
Följande exempel misslyckas med det här testet. Modulens m1parameter location tilldelas inte något explicit värde, så den är som standard resourceGroup().location, enligt vad som anges i module1.bicep. Men att använda resursgruppens plats kanske inte är det avsedda beteendet, eftersom andra resurser i main.bicep kan skapas på en annan plats än resursgruppens plats.
main.bicep:
param location string = 'eastus'
module m1 'module1.bicep' = {
name: 'm1'
}
resource storageaccount 'Microsoft.Storage/storageAccounts@2024-03-01' = {
name: 'storageaccount'
location: location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
module1.bicep:
param location string = resourceGroup().location
resource stg 'Microsoft.Storage/storageAccounts@2024-03-01' = {
name: 'stg'
location: location
kind: 'StorageV2'
sku: {
name: 'Premium_LRS'
}
}
Du kan åtgärda felet genom att uttryckligen skicka in ett värde för modulens location egenskap:
main.bicep:
param location string = 'eastus'
module m1 'module1.bicep' = {
name: 'm1'
params: {
location: location // An explicit value will override the default value specified in module1.bicep
}
}
resource storageaccount 'Microsoft.Storage/storageAccounts@2024-03-01' = {
name: 'storageaccount'
location: location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
Nästa steg
Mer information om linter finns i Använda Bicep-linter.