Importations dans Bicep
Cet article décrit la syntaxe à utiliser pour exporter et importer des fonctionnalités partagées, ainsi que des espaces de noms des extensions Bicep. L’utilisation des importations au moment de la compilation active automatiquement la génération du code dans la version 2.0 du langage de programmation.
Exporter des variables, des types et des fonctions
L’élément décoratif @export()
indique qu’un autre fichier peut importer une instruction spécifique. Ce décorateur n’est valide que sur les instructions type
, var
et func
. Les instructions de variable marquées avec @export()
doivent être des constantes au moment de la compilation.
La syntaxe d’exportation des fonctionnalités à utiliser dans d’autres fichiers Bicep est la suivante :
@export()
<statement_to_export>
Importer des variables, des types et des fonctions
La syntaxe d’importation des fonctionnalités à partir d’un autre fichier Bicep est la suivante :
import {<symbol_name>, <symbol_name>, ...} from '<bicep_file_name>'
Avec l’alias facultatif pour renommer des symboles :
import {<symbol_name> as <alias_name>, ...} from '<bicep_file_name>'
Utilisation de la syntaxe d’importation générique :
import * as <alias_name> from '<bicep_file_name>'
Vous pouvez combiner les syntaxes précédentes. Pour accéder aux symboles importés à l’aide de la syntaxe de caractère générique, vous devez utiliser l’opérateur .
: <alias_name>.<exported_symbol>
.
Seules les instructions exportées dans le fichier référencé peuvent être importées.
Vous pouvez librement utiliser des fonctionnalités importées à partir d’un autre fichier. Par exemple, vous pouvez utiliser des variables importées chaque fois qu’une variable déclarée dans le fichier est normalement valide.
Exemple
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
Importer des espaces de noms et des extensions (préversion)
Remarque
Afin d’être utilisée, la fonctionnalité expérimentale extensibility
doit être activée à partir du fichier de configuration Bicep.
La syntaxe pour importer les espaces de noms est la suivante :
import 'az@1.0.0'
import 'sys@1.0.0'
az
et sys
sont des espaces de noms intégrés Bicep. Importés par défaut. Pour plus d’informations sur les types de données et les fonctions définis dans az
et sys
, consultez Types de données et Fonctions Bicep.
La syntaxe pour importer une extension Bicep est la suivante :
import '<extension-name>@<extension-version>'
La syntaxe pour importer des extensions Bicep nécessitant d’être configurées est la suivante :
import '<extension-name>@<extension-version>' with {
<extension-properties>
}
Pour un exemple, utilisez l’extension Bicep Kubernetes.
Contenu connexe
- Pour plus d’informations sur les types de données Bicep, consultez Types de données.
- Pour plus d’informations sur les fonctions Bicep, consultez Fonctions Bicep.
- Pour plus d’information sur l’utilisation de l’extension Bicep Kubernetes, consultez Extension Bicep Kubernetes.
- Pour suivre un tutoriel sur l’extension Kubernetes, consultez Démarrage rapide : déployer des applications Azure sur Azure Kubernetes Services à l’aide de l’extension Bicep Kubernetes.