Megosztás a következőn keresztül:


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 m1paramétere location nincs explicit értékhez rendelve, ezért alapértelmezés szerint a modul1.bicep-ben megadott értékhez resourceGroup().locationvan 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.