你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Bicep 中的导入

本文介绍用于导出和导入共享功能和命名空间的语法。 使用编译时导入时会自动启用语言版本 2.0 代码生成。

导出变量、类型和函数

@export() 修饰器指明另一个文件可以导入特定语句。 此修饰器仅对 typevarfunc 语句有效。 标记为 @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

导入命名空间

导入命名空间的语法为:

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

azsys都是 Bicep 内置命名空间。 默认情况下会导入它们。 有关azsys中定义的数据类型和函数的详细信息,请参阅数据类型Bicep 函数