Importieren in Bicep
In diesem Artikel wird die Syntax beschrieben, mit der Sie freigegebene Funktionen und Namespaces für Bicep-Erweiterungen exportieren und importieren. Durch die Verwendung von Importen zur Kompilierzeit wird automatisch die Codegenerierung mit der Sprachversion 2.0 aktiviert.
Exportieren von Variablen, Typen und Funktionen
Der @export()
-Decorator gibt an, dass eine andere Datei eine bestimmte Anweisung importieren kann. Dieses Decorator-Element ist nur für type
-, var
- und func
-Anweisungen gültig. Variable Anweisungen, die mit @export()
gekennzeichnet sind, müssen Kompilierzeitkonstanten sein.
Die Syntax für den Export von Funktionen für die Verwendung in anderen Bicep-Dateien ist:
@export()
<statement_to_export>
Importieren von Variablen, Typen und Funktionen
Die Syntax für den Import von Funktionen aus einer anderen Bicep-Datei ist:
import {<symbol_name>, <symbol_name>, ...} from '<bicep_file_name>'
Mit optionalem Aliasing zum Umbenennen von Symbolen:
import {<symbol_name> as <alias_name>, ...} from '<bicep_file_name>'
Verwenden der Syntax für den Wildcardimport:
import * as <alias_name> from '<bicep_file_name>'
Sie können die vorhergehenden Syntaxen beliebig kombinieren. Um mit der Platzhaltersyntax auf importierte Symbole zuzugreifen, müssen Sie den .
-Operator verwenden: <alias_name>.<exported_symbol>
.
Nur Anweisungen, die in die verwiesene Datei exportiert wurden, sind für den Import verfügbar.
Sie können Funktionen, die aus einer anderen Datei importiert wurden, ohne Einschränkungen verwenden. Sie können beispielsweise importierte Variablen an einer beliebigen Stelle verwenden, an der eine in der Datei deklarierte Variable normalerweise gültig wäre.
Beispiel
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
Importieren von Namespaces und Erweiterungen (Vorschau)
Hinweis
Sie müssen das experimentelle Feature extensibility
über die Bicep-Konfigurationsdatei aktivieren, damit Sie diese Funktion verwenden können.
Die Syntax für das Importieren von Namespaces lautet:
import 'az@1.0.0'
import 'sys@1.0.0'
Sowohl az
als auch sys
sind integrierte Bicep-Namespaces. Sie werden standardmäßig importiert. Weitere Informationen zu den Datentypen und den in az
und sys
definierten Funktionen finden Sie unter Datentypen und Bicep-Funktionen.
Die Syntax für das Importieren von Bicep-Erweiterungen lautet:
import '<extension-name>@<extension-version>'
Die Syntax für das Importieren von Bicep-Erweiterungen, die konfiguriert werden müssen, lautet:
import '<extension-name>@<extension-version>' with {
<extension-properties>
}
Ein Beispiel finden Sie unter Bicep Kubernetes-Erweiterung.
Zugehöriger Inhalt
- Weitere Informationen zu den Bicep-Datentypen finden Sie unter Datentypen.
- Weitere Informationen zu den Bicep-Funktionen finden Sie unter Bicep-Funktionen.
- Weitere Informationen zur Verwendung der Kubernetes-Erweiterung für Bicep finden Sie unter Bicep-Kubernetes-Erweiterung.
- Ein Tutorial mit einer Kubernetes-Erweiterung finden Sie im Schnellstart: Bereitstellen von Azure-Anwendungen in Azure Kubernetes Services mithilfe des Bicep-Kubernetes-Erweiterung.