Bicep 中的导入
本文介绍用于导出和导入共享功能的语法,以及 Bicep 扩展的命名空间。 使用编译时导入时会自动启用语言版本 2.0 代码生成。
导出变量、类型和函数
@export()
修饰器指明另一个文件可以导入特定语句。 此修饰器仅对 type
、var
、func
语句有效。 标记为 @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
导入命名空间和扩展(预览版)
注意
必须从 Bicep 配置文件启用试验功能 extensibility
,才能使用此功能。
导入命名空间的语法为:
import 'az@1.0.0'
import 'sys@1.0.0'
az
和sys
都是 Bicep 内置命名空间。 默认情况下会导入它们。 有关az
和sys
中定义的数据类型和函数的详细信息,请参阅数据类型和 Bicep 函数。
导入 Bicep 扩展的语法为:
import '<extension-name>@<extension-version>'
导入需要配置的 Bicep 扩展的语法为:
import '<extension-name>@<extension-version>' with {
<extension-properties>
}
有关示例,请参阅 Bicep Kubernetes 扩展。
相关内容
- 有关 Bicep 数据类型,请参阅数据类型。
- 有关 Bicep 函数,请参阅 Bicep 函数。
- 要了解如何使用 Bicep Kubernetes 扩展,请参阅 Bicep Kubernetes 扩展。
- 要完成 Kubernetes 扩展教程,请参阅快速入门:使用 Bicep Kubernetes 扩展将 Azure 应用程序部署到 Azure Kubernetes 服务。