分享方式:


Bicep 中的匯入

本文說明您用來匯出和匯入 Bicep 延伸模組的共用功能和命名空間的語法。 使用編譯時間匯入會自動啟用 語言 2.0 版程式代碼產生。

匯出變數、類型和函式

@export()裝飾專案表示另一個檔案可以匯入特定語句。 這個裝飾專案只在、 varfunc 語句上type有效。 標記 @export() 的變數陳述式必須在編譯時期固定。

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

@export()
<statement_to_export>

匯入變數、類型和函式

從另一個 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 '<extension-name>@<extension-version>'

匯入 Bicep 延伸模組的語法,其需要設定為:

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

如需範例,請參閱 Bicep Kubernetes 擴充功能