次の方法で共有


リンター ルール - what-if ショートサーキット

このルールは、ランタイム値がモジュールにパラメーターとして渡されるタイミングを検出し、それを使用してリソース ID (パラメーターを使用してモジュール内の 1 つ以上のリソースの名前、subscriptionId、resourceGroup、条件、スコープ、または apiVersion を決定する場合など) を検出し、what-if ショートサーキットの可能性にフラグを設定します。

Note

このルールは既定ではオフになっています。有効にするには、bicepconfig.json でレベルを変更します。

リンター ルールのコード

ルール設定をカスタマイズするには、Bicep 構成ファイルで次の値を使用します。

what-if-short-circuiting

解決策

この規則では、モジュール内のリソース ID を決定するために使用されるランタイム値がチェックされます。 Bicep コードが what-if ショートサーキットを引き起こす可能性がある場合は、アラートが表示されます。 次の例では、 appServiceOutputsappServiceTests は、ランタイム値をパラメーターとしてモジュールに渡し、リソースに名前を付けるときに使用するため、what-if ショートサーキットのフラグが設定されます。

main.bicep

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: 'storageAccountName'
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

module appServiceModule 'modules/appService.bicep' = {
  name: 'appService2'
  params: {
    appServiceName: 'test'
  }
}

module appServiceOutputs 'modules/appService.bicep' = {
  name: 'appService3'
  params: {
    appServiceName: appServiceModule.outputs.outputName
  }
}

module appServiceTest 'modules/appService.bicep' = {
  name:'test3'
  params: {
    appServiceName: storageAccount.properties.accessTier
  }
}

modules/appService.bicep

param appServiceName string

resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
  name: appServiceName
  location: 'eastus'
  properties: {
    httpsOnly: true
  }
}

output outputName string = 'outputName'

この問題を回避するには、リソース ID の決定に使用される値にデプロイ時定数を使用します。

次のステップ

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