Dela via


Importer i Bicep

Den här artikeln beskriver syntaxen som du använder för att exportera och importera delade funktioner och namnområden för Bicep-tillägg. Om du använder kompileringstidsimporter aktiveras automatiskt språkversion 2.0-kodgenerering .

Exportera variabler, typer och funktioner

Dekoratören @export() anger att en annan fil kan importera en specifik instruktion. Den här dekoratören är endast giltig för type, varoch func -instruktioner. Variabelinstruktioner som markerats med @export() måste vara kompileringskonstanter.

Syntaxen för att exportera funktioner för användning i andra Bicep-filer är:

@export()
<statement_to_export>

Importera variabler, typer och funktioner

Syntaxen för att importera funktioner från en annan Bicep-fil är:

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

Med valfritt alias för att byta namn på symboler:

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

Använd syntaxen för jokerteckenimport:

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

Du kan blanda och matcha de föregående syntaxerna. Om du vill komma åt importerade symboler med hjälp av jokerteckensyntaxen måste du använda operatorn . : <alias_name>.<exported_symbol>.

Endast instruktioner som exporterades i filen som refereras är tillgängliga för import.

Du kan använda funktioner som har importerats från en annan fil utan begränsningar. Du kan till exempel använda importerade variabler var som helst där en variabel som deklareras i filen normalt skulle vara giltig.

Exempel

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

Importera namnområden och tillägg (förhandsversion)

Kommentar

Den experimentella funktionen extensibility måste vara aktiverad från Bicep-konfigurationsfilen för att kunna använda den här funktionen.

Syntaxen för att importera namnområden är:

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

Både az och sys är inbyggda Bicep-namnområden. De importeras som standard. Mer information om datatyperna och funktionerna som definierats i och finns i az Datatyper och Bicep-funktioner.sys

Syntaxen för att importera Bicep-tillägg är:

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

Syntaxen för att importera Bicep-tillägg, som kräver konfiguration, är:

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

Ett exempel finns i Bicep Kubernetes-tillägget.