Comparteix a través de


Importaciones en Bicep

En este artículo se describe la sintaxis que se usa para exportar e importar la funcionalidad compartida, así como los espacios de nombres para proveedores de extensibilidad de Bicep.

Exportación de tipos, variables y funciones

El decorador @export() se usa para indicar que otro archivo puede importar una instrucción determinada. Este decorador solo es válido en las instrucciones de tipo, variable y función. Las instrucciones variables marcadas con @export() deben ser constantes en tiempo de compilación.

La sintaxis para exportar la funcionalidad para su uso en otros archivos de Bicep es:

@export()
<statement_to_export>

Importación de tipos, variables y funciones

La sintaxis para importar la funcionalidad desde otro archivo de Bicep es:

import {<symbol_name>, <symbol_name>, ...} from '<bicep_file_name>'

Con alias opcional para cambiar el nombre de los símbolos:

import {<symbol_name> as <alias_name>, ...} from '<bicep_file_name>'

Con la sintaxis de importación de caracteres comodín:

import * as <alias_name> from '<bicep_file_name>'

Puede mezclar y hacer coincidir las sintaxis anteriores. Para acceder a los símbolos importados mediante la sintaxis de caracteres comodín, debe usar el operador .: <alias_name>.<exported_symbol>.

Solo las instrucciones que se han exportado en el archivo al que se hace referencia están disponibles para importarse.

La funcionalidad que se ha importado desde otro archivo se puede usar sin restricciones. Por ejemplo, las variables importadas pueden usarse en cualquier lugar donde normalmente sería válida una variable declarada en un archivo.

Ejemplo

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

Importación de espacios de nombres y proveedores de extensibilidad (versión preliminar)

Nota:

La característica experimental extensibility debe estar habilitada desde el archivo de configuración de Bicep para usar esta característica.

La sintaxis para importar espacios de nombres es:

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

Tanto az como sys son espacios de nombres integrados de Bicep. Se importan de forma predeterminada. Para obtener más información sobre los tipos de datos y las funciones definidas en az y sys, consulte Tipos de datos y funciones de Bicep.

La sintaxis para importar proveedores de extensibilidad de Bicep es:

import '<provider-name>@<provider-version>'

La sintaxis para importar proveedores de extensibilidad de Bicep que requieren configuración es:

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

Para ver un ejemplo, consulte Proveedor de Kubernetes de extensibilidad de Bicep.

Pasos siguientes