Importaciones en Bicep
En este artículo se describe la sintaxis que se usa para exportar e importar la funcionalidad compartida y los espacios de nombres para las extensiones de Bicep. El uso de importaciones en tiempo de compilación permite generar automáticamente código de la versión 2.0 del lenguaje.
Exportación de variables, tipos y funciones
El decorador @export()
indica que otro archivo puede importar una instrucción específica. Este decorador solo es válido en las instrucciones type
, var
y func
. 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 variables, tipos 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 están disponibles para la importación las instrucciones exportadas en el archivo al que se hace referencia.
Puede usar la funcionalidad que se importó desde otro archivo sin restricciones. Por ejemplo, puede usar variables importadas en cualquier lugar en el que 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 extensiones (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 extensiones de Bicep es:
import '<extension-name>@<extension-version>'
La sintaxis para importar extensiones de Bicep que requieren configuración es:
import '<extension-name>@<extension-version>' with {
<extension-properties>
}
Para obtener un ejemplo, consulte Extensión de Kubernetes de Bicep.
Contenido relacionado
- Para aprender sobre los tipos de datos de Bicep, consulte Tipos de datos.
- Para obtener más información sobre las funciones de Bicep, consulte Funciones de Bicep.
- Para obtener más información sobre cómo usar la extensión de Kubernetes de Bicep, consulte Extensión de Kubernetes de Bicep.
- Para ver un tutorial de la extensión de Kubernetes, consulte Inicio rápido: Implementación de aplicaciones de Azure en Azure Kubernetes Services mediante la extensión de Kubernetes de Bicep.