このルールは、パラメーターの既定値以外で使用 resourceGroup().___location
または deployment().___location
を検索します。
注
このルールは、既定ではオフになっています。 bicepconfig.json のレベルを変更して有効にします。
リンター ルールのコード
ルール設定をカスタマイズするには、Bicep 構成ファイルで次の値を使用します。
no-loc-expr-outside-params
解決策
resourceGroup().___location
および deployment().___location
は、パラメーターの既定値としてのみ使用する必要があります。
テンプレート ユーザーは、リソースを作成できるリージョンへのアクセスが制限される場合があります。
resourceGroup().___location
またはdeployment().___location
式は、ユーザーがアクセスできないリージョンにリソース グループまたはデプロイが作成された場合にユーザーをブロックする可能性があるため、テンプレートを使用できません。
ベスト プラクティスとして、リソースの場所を設定するには、テンプレートに ___location
という名前の文字列パラメーターが必要です。 テンプレート内の他の場所でこれらの関数を使用する代わりに、 ___location
パラメーターを resourceGroup().___location
または deployment().___location
する場合、テンプレートのユーザーは便利な場合に既定値を使用できますが、必要に応じて別の場所を指定することもできます。
resource storageaccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
___location: resourceGroup().___location
}
既定で ___location
に設定されている resourceGroup().___location
プロパティを作成し、代わりにこの新しいパラメーターを使用することで、エラーを修正できます。
param ___location string = resourceGroup().___location
resource storageaccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
___location: ___location
}
次の例では、 ___location
は resourceGroup().___location
を使用していますが、パラメーターではないので、このテストは失敗します。
var ___location = resourceGroup().___location
変数をパラメーターに変換することで、エラーを修正できます。
param ___location string = resourceGroup().___location
Azure PowerShell を使用してサブスクリプション、管理グループ、またはテナントにデプロイする場合は、 ___location
以外のパラメーター名を使用する必要があります。
New-AzDeployment、New-AzManagementGroupDeployment、および New-AzTenantDeployment コマンドには、___location
という名前のパラメーターがあります。 このコマンド パラメーターは、Bicep ファイル内のパラメーターと競合します。
rgLocation
などの名前を使用すると、この競合を回避できます。
___location
には という名前のパラメーターがないため、リソース グループにデプロイするときにパラメーター名に___location
を使用できます。
次のステップ
リンターの詳細については、「Bicep リンターの使用方法」を参照してください。