Linter-szabály – explicit értékeket használjon a modul helyparamétereihez
Ez a szabály megkeresi az erőforrás-helyekhez használt modulparamétereket, és véletlenül nem várt értékre alapértelmezettként jelenhet meg.
Linter-szabály kódja
A bicep-konfigurációs fájlban a következő érték használatával szabhatja testre a szabálybeállításokat:
explicit-values-for-loc-params
Megoldás
Modul használata esetén az alapértelmezett értékkel rendelkező helyhez kapcsolódó paraméterekhez explicit értéket kell hozzárendelni. A helyhez kapcsolódó paraméterek olyan paramétereket tartalmaznak, amelyek alapértelmezett értékre hivatkoznak resourceGroup().location
, vagy deployment().location
az erőforrás helytulajdonságából hivatkozott paramétereket is.
Az erőforráscsoport vagy az üzembe helyezés helyének alapértelmezett paramétere akkor kényelmes, ha egy bicep-fájlt használnak fő üzembehelyezési sablonként. Ha azonban egy modulban ilyen alapértelmezett értéket használ, az váratlan viselkedést okozhat, ha a fő sablon erőforrásai nem ugyanabban a régióban találhatók, mint az erőforráscsoport.
Példák
Az alábbi példa nem felel meg a tesztnek. A modul m1
paramétere location
nincs explicit értékhez rendelve, ezért alapértelmezés szerint a modul1.bicep-ben megadott értékhez resourceGroup().location
van hozzárendelve. Előfordulhat azonban, hogy az erőforráscsoport helyének használata nem a kívánt viselkedés, mivel a main.bicep más erőforrásai az erőforráscsoport helyétől eltérő helyen hozhatók létre.
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'
}
}
A hibát úgy háríthatja el, ha explicit módon adja át a modul tulajdonságának location
értékét:
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'
}
}
Következő lépések
A linterről további információt a Bicep-linter használata című témakörben talál.