リンター ルール - モジュールの場所のパラメーターに明示的な値を使用します
このルールは、リソースの場所に使用されるモジュール パラメーターのうち、誤って予期しない値を規定値にしてしまう可能性のあるモジュール パラメーターを検出します。
リンター ルールのコード
ルール設定をカスタマイズするには、Bicep 構成ファイルで次の値を使用します。
explicit-values-for-loc-params
解決策
モジュールを使用する際、既定値を持つ場所に関連するパラメーターには、明示的な値を割り当てる必要があります。 場所に関連するパラメーターには、規定値がresourceGroup().location
またはdeployment().location
を参照するパラメーターや、リソースの場所プロパティから参照される任意のパラメーターがあります。
リソース グループまたはデプロイの場所を既定値で指定するパラメーターは、Bicep ファイルがメインのデプロイ テンプレートとして使用される場合に便利です。 ただし、このような既定値がモジュールで使用されている場合、メイン テンプレートのリソースがリソース グループと同じ場所に存在しない場合、予期しない動作が発生する可能性があります。
例
次の例は、このテストで不合格になります。 モジュール m1
のパラメーター location
に明示的な値が割り当てられていないため、module1.bicep で指定されているように、既定で resourceGroup().location
に設定されます。 ただし、 main.bicep の他のリソースは、リソース グループの場所とは異なる場所に作成される可能性があるため、リソース グループの場所の使用は意図した動作ではない場合があります。
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'
}
}
この失敗を修正するには、モジュールのlocation
プロパティの値を明示的に渡します。
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'
}
}
次のステップ
リンターの詳細については、「Bicep リンターの使用方法」を参照してください。