Importy v Bicep

Tento článek popisuje syntaxi, kterou používáte k exportu a importu sdílených funkcí a oborů názvů pro rozšíření Bicep. Použití importů v době kompilace automaticky povoluje generování kódu verze 2.0 .

Export proměnných, typů a funkcí

Dekorátor @export() označuje, že jiný soubor může importovat konkrétní příkaz. Tento dekorátor je platný pouze pro type, vara func příkazy. Příkazy proměnných označené @export() pomocí musí být konstanty kompilace.

Syntaxe pro export funkcí pro použití v jiných souborech Bicep je:

@export()
<statement_to_export>

Import proměnných, typů a funkcí

Syntaxe pro import funkcí z jiného souboru Bicep je:

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

Pomocí volitelného aliasingu pro přejmenování symbolů:

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

Použití syntaxe importu zástupných znaků:

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

Můžete kombinovat a shodovat předchozí syntaxe. Pokud chcete získat přístup k importovaným symbolům pomocí syntaxe zástupných znaků, musíte použít . operátor: <alias_name>.<exported_symbol>.

K importu jsou k dispozici pouze příkazy exportované do souboru, na který se odkazuje.

Můžete použít funkce importované z jiného souboru bez omezení. Můžete například použít importované proměnné kdekoli, kde by byla proměnná deklarovaná v souboru normálně platná.

Příklad

export.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

Import oborů názvů a rozšíření (Preview)

Poznámka:

Aby bylo možné tuto funkci používat, musí být experimentální funkce extensibility povolená z konfiguračního souboru Bicep.

Syntaxe pro import oborů názvů je:

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

Obě az a sys jsou předdefinované obory názvů Bicep. Ve výchozím nastavení se importují. Další informace o datových typech a funkcích definovaných v az a sysnaleznete v tématu Datové typy a funkce Bicep.

Syntaxe pro import rozšíření Bicep je:

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

Syntaxe pro import rozšíření Bicep, která vyžadují konfiguraci, je:

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

Příklad najdete v tématu Rozšíření Bicep Kubernetes.