Bicep 中的导入
本文介绍用于导出和导入共享功能的语法,以及 Bicep 扩展性提供程序的命名空间。
导出类型、变量和函数(预览版)
注意
需要 Bicep CLI 版本 0.23.X 或更高版本才能使用此功能。 必须从 Bicep 配置文件启用试验功能 compileTimeImports
。 对于用户定义的函数,还必须启用试验功能 userDefinedFunctions
。
@export()
修饰器用于指示给定语句可由另一个文件导入。 此修饰器仅在类型、变量和函数语句上有效。 标记为 @export()
的变量语句必须是编译时常数。
导出在其他 Bicep 文件中使用的功能的语法如下:
@export()
<statement_to_export>
导入类型、变量和函数(预览版)
注意
需要 Bicep CLI 版本 0.23.X 或更高版本才能使用此功能。 必须从 Bicep 配置文件启用试验功能 compileTimeImports
。 对于用户定义的函数,还必须启用试验功能 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
导入命名空间和扩展性提供程序(预览版)
注意
必须从 Bicep 配置文件启用试验功能 extensibility
,才能使用此功能。
导入命名空间的语法为:
import 'az@1.0.0'
import 'sys@1.0.0'
az
和sys
都是 Bicep 内置命名空间。 默认情况下会导入它们。 有关az
和sys
中定义的数据类型和函数的详细信息,请参阅数据类型和 Bicep 函数。
用于导入 Bicep 扩展性提供程序的语法为:
import '<provider-name>@<provider-version>'
导入需要配置的 Bicep 扩展性提供程序的语法为:
import '<provider-name>@<provider-version>' with {
<provider-properties>
}
请参阅 Bicep 扩展性 Kubernetes 提供程序,查看示例。
后续步骤
- 有关 Bicep 数据类型,请参阅数据类型。
- 有关 Bicep 函数,请参阅 Bicep 函数。
- 要了解如何使用 Kubernetes 提供程序,请参阅 Bicep 扩展性 Kubernetes 提供程序。
- 要完成 Kubernetes 提供程序教程,请参阅快速入门 - 使用 Bicep Kubernetes 提供程序将 Azure 应用程序部署到 Azure Kubernetes 服务。