Teilen über


Importieren in Bicep

In diesem Artikel wird die Syntax beschrieben, mit der Sie freigegebene Funktionen und Namespaces für Bicep-Erweiterungen exportieren und importieren.

Exportieren von Variablen, Typen und Funktionen

Der Decorator @export() gibt an, dass eine bestimmte Anweisung von einer anderen Datei importiert werden 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 Wildcardsyntax auf importierte Symbole zuzugreifen, müssen Sie den .-Operator verwenden: <alias_name>.<exported_symbol>.

Es können nur Anweisungen importiert werden, die in der Datei, auf die verwiesen wird, exportiert wurden.

Funktionen, die aus einer anderen Datei importiert wurden, können ohne Einschränkungen verwendet werden. Importierte Variablen können z. B. überall verwendet werden, wo 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 (Preview)

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.

Nächste Schritte