Share via


Bicep 中的匯入

本文描述您用來匯出和匯入共用功能的語法,以及 Bicep 擴充性提供者的命名空間。

匯出𩔬型、變數和函式 (預覽)

注意

需要 Bicep CLI 0.23.X 版或更高版本才能使用此功能。 實驗性功能 compileTimeImports 必須從 Bicep 設定檔啟用。 針對使用者定義函式,也必須啟用實驗性功能 userDefinedFunctions

@export() 裝飾項目用來指出給定陳述式可由另一個檔案匯入。 此裝飾項目僅適用於類型、變數和函式陳述式。 標記 @export() 的變數陳述式必須在編譯時期固定。

匯出功能以用於其他 Bicep 檔案的語法如下:

@export()
<statement_to_export>

匯入類型、變數和函式 (預覽)

注意

需要 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

匯入命名空間和擴充性提供者 (預覽)

注意

實驗性功能 extensibility 必須從 Bicep 設定檔啟用,才能使用此功能。

匯入命名空間的語法為:

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 提供者

下一步