この診断は、不一致のデータ型の値を割り当てるときに発生します。
Description
<data-type>型の値が必要ですが、指定された値は<data-type>型です。
Level
警告/エラー
解決策
想定されるデータ型を使用します。 指定された値がトークンの場合は、問題を軽減するために any() 関数 で囲みます。
例
次の例では、予期されるデータ型が文字列であるため、診断を発生させます。 実際に指定された値は整数です。
var myValue = 5
output myString string = myValue
文字列値を指定することで、診断を修正できます。
var myValue = '5'
output myString string = myValue
Azure Bicepでは、 デコレーターによって制限されたパラメーターの既定値として deployment().location を使用しているときに、エラー @allowed が発生するのは一般的なシナリオです。 このエラーは、Bicepの厳密なコンパイル時の型安全メカニズムが原因で発生します。 例えば次が挙げられます。
targetScope = 'subscription'
@allowed([
'southcentralus'
'eastus2euap'
])
param location string = deployment().location
現在のデプロイのメタデータの場所に既定値を設定する利便性を維持する場合は、Bicepの any() 関数を使用してコンパイル時の型チェックをバイパスできます。 この関数は、式を疎型として扱うようにコンパイラに指示します。
targetScope = 'subscription'
@allowed([
'southcentralus'
'eastus2euap'
])
// The any() function suppresses the BCP033 type-mismatch error
param location string = any(deployment().location)
デプロイが 1 つのリージョンに厳密にバインドされている場合は、動的な deployment().location メタデータを完全に使用しないようにし、リスト内に存在する既定値を明示的に割り当てることができます。
次のステップ
Bicep 診断の詳細については、「 Bicep コア診断」を参照してください。