Bicep の拡張機能を使用する

Bicep は当初、Azure Resource Manager JSON テンプレートと比較して作成エクスペリエンスを強化し、Azure リソースの展開と管理を簡素化するために作成されました。 Bicep 拡張機能は、この基盤に基づいて構築されており、Bicep ファイルが Azure Resource Manager のスコープを超えてリソースを参照できるようにします。 この記事では、Bicep 拡張機能の使用方法について説明します。

Bicep 拡張機能をインポートするための構文は次のとおりです。

extension <extension-name>

構成を必要とする Bicep 拡張機能をインポートするための構文は次のとおりです:

extension <extension-name> with {
  <extension-properties>
}

例については、Bicep Kubernetes 拡張機能Microsoft Graph 拡張機能に関するページを参照してください。

Troubleshooting

特定の条件下で入れ子になったモジュール内で Graph 拡張機能 (または OAuth On-Behalf-Of フローを必要とする任意のBicep拡張機能) を使用しようとすると、デプロイが 401 AuthenticationFailed エラーで失敗する可能性があります。

この制限は、入れ子になったモジュールが次のいずれかの条件を満たしている場合に特に発生します。

  • テンプレート スペックとして構成されます。
  • templateLink を使用します。親テンプレートは、Bicepを介して生成されるのではなく、手動で作成されます。

これらのシナリオでは、拡張機能に必要な認証ハンドシェイクを完了できないため、デプロイエラーが発生します。

回避策として、ルート Bicep ファイル レベルで拡張機能をインポートできます。 例えば次が挙げられます。

extension microsoftGraphV1

module graphModule 'ts/mySpecs:graph-module:1.0.0' = { // Uses the Graph extension internally
  params: {
    ...
  }
}