Importy v Bicep

Tento článek popisuje syntaxi, kterou používáte k exportu a importu sdílených funkcí, a také oborů názvů pro zprostředkovatele rozšiřitelnosti Bicep.

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

Poznámka:

K použití této funkce se vyžaduje rozhraní příkazového řádku Bicep verze 0.23.X nebo vyšší . Experimentální funkce compileTimeImports musí být povolena z konfiguračního souboru Bicep. U uživatelem definovaných funkcí musí být také povolena experimentální funkce userDefinedFunctions .

Dekorátor @export() slouží k označení, že daný příkaz lze importovat jiným souborem. Tento dekorátor je platný pouze pro příkazy typu, proměnné a funkce. 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 typů, proměnných a funkcí (Preview)

Poznámka:

K použití této funkce se vyžaduje rozhraní příkazového řádku Bicep verze 0.23.X nebo vyšší . Experimentální funkce compileTimeImports musí být povolena z konfiguračního souboru Bicep. U uživatelem definovaných funkcí musí být také povolena experimentální funkce userDefinedFunctions .

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, které byly exportovány do souboru, na který odkazujete.

Funkce, které byly importovány z jiného souboru, lze použít bez omezení. Například importované proměnné lze použít 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 zprostředkovatelů oborů názvů a rozšiřitelnosti (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 zprostředkovatelů rozšiřitelnosti Bicep je:

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

Syntaxe pro import zprostředkovatelů rozšiřitelnosti Bicep, které vyžadují konfiguraci, je:

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

Příklad najdete v tématu Rozšiřitelnost poskytovatele Kubernetes Bicep.

Další kroky