次の方法で共有


リンター ルール - パラメーターの既定値以外の場所の式はありません

このルールは、パラメーターの既定値以外で使用 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
}

次の例では、 ___locationresourceGroup().___location を使用していますが、パラメーターではないので、このテストは失敗します。

  var ___location = resourceGroup().___location

変数をパラメーターに変換することで、エラーを修正できます。

  param ___location string  = resourceGroup().___location

Azure PowerShell を使用してサブスクリプション、管理グループ、またはテナントにデプロイする場合は、 ___location以外のパラメーター名を使用する必要があります。 New-AzDeploymentNew-AzManagementGroupDeployment、および New-AzTenantDeployment コマンドには、___locationという名前のパラメーターがあります。 このコマンド パラメーターは、Bicep ファイル内のパラメーターと競合します。 rgLocationなどの名前を使用すると、この競合を回避できます。

___location には という名前のパラメーターがないため、リソース グループにデプロイするときにパラメーター名に___locationを使用できます。

次のステップ

リンターの詳細については、「Bicep リンターの使用方法」を参照してください。