Share via


Bicep でのインポート

このアーティクルでは、共有機能のエクスポートとインポートに使用する構文と、Bicep 拡張性プロバイダーの名前空間について説明します。

エクスポート型、変数、関数 (プレビュー)

Note

このフィーチャーを使用するには、Bicep CLI バージョン 0.23.X 以降が必要です。 実験的フィーチャー compileTimeImports は、Bicep 構成ファイルから有効にする必要があります。 ユーザー定義関数の場合、実験的フィーチャー userDefinedFunctions も有効にする必要があります。

@export() デコレーターは、特定のステートメントを別のファイルからインポートできることを示すために使用されます。 このデコレーターは、型、変数、および関数ステートメントでのみ有効です。 @export() でマークされた変数ステートメントは、コンパイル時定数である必要があります。

他の Bicep ファイルで使用する機能をエクスポートするための構文は次のとおりです:

@export()
<statement_to_export>

インポート型、変数、関数 (プレビュー)

Note

このフィーチャーを使用するには、Bicep CLI バージョン 0.23.X 以降が必要です。 実験的フィーチャー compileTimeImports は、Bicep 構成ファイルから有効にする必要があります。 ユーザー定義関数の場合、実験的フィーチャー userDefinedFunctions も有効にする必要があります。

別の Bicep ファイルから機能をインポートするための構文は次のとおりです:

import {<symbol_name>, <symbol_name>, ...} from '<bicep_file_name>'

シンボルの名前を変更するためのオプションのエイリアスを使用する場合:

import {<symbol_name> as <alias_name>, ...} from '<bicep_file_name>'

ワイルドカード インポート構文の使用:

import * as <alias_name> from '<bicep_file_name>'

上記の構文を混在させ、一致させることができます。 ワイルドカード構文を使用してインポートされたシンボルにアクセスするには、 . 演算子 <alias_name>.<exported_symbol>を使用する必要があります。

参照されているファイル内の エクスポートされた ステートメントのみをインポートできます。

別のファイルからインポートされた機能は、制限なく使用できます。 たとえば、インポートされた変数は、ファイル内で宣言された変数が通常有効などの任意の場所でも使用できます。

exports.bicep

@export()
type myObjectType = {
  foo: string
  bar: int
}

@export()
var myConstant = 'This is a constant value'

@export()
func sayHello(name string) string => 'Hello ${name}!'

main.bicep

import * as myImports from 'exports.bicep'
import {myObjectType, sayHello} from 'exports.bicep'

param exampleObject myObjectType = {
  foo: myImports.myConstant
  bar: 0
}

output greeting string = sayHello('Bicep user')
output exampleObject myImports.myObjectType = exampleObject

名前空間と機能拡張プロバイダーをインポートする (プレビュー)

Note

この機能を使用するには、実験的フィーチャー extensibilityBicep 構成ファイル から有効にする必要があります。

名前空間をインポートするための構文は次のとおりです:

import 'az@1.0.0'
import 'sys@1.0.0'

azsys はどちらも Bicep 組み込みの名前空間です。 これらは既定でインポートされます。 azsys で定義されているデータ型と関数の詳細については、「データ型」と「Bicep 関数」を参照してください。

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

import '<provider-name>@<provider-version>'

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

import '<provider-name>@<provider-version>' with {
  <provider-properties>
}

例については、「Bicep 拡張機能 Kubernetes プロバイダー」を参照してください。

次のステップ