Delen via


Invoer in Bicep

In dit artikel worden de syntaxis beschreven die u gebruikt voor het exporteren en importeren van gedeelde functionaliteit en naamruimten voor Bicep-extensies. Als u compilatietijd importeert , wordt taalversie 2.0 automatisch gegenereerd.

Variabelen, typen en functies exporteren

De @export() decorator geeft aan dat een ander bestand een specifieke instructie kan importeren. Deze decorator is alleen geldig voor type, varen func instructies. Variabele-instructies die zijn gemarkeerd met @export() , moeten compileertijdconstanten zijn.

De syntaxis voor het exporteren van functionaliteit voor gebruik in andere Bicep-bestanden is:

@export()
<statement_to_export>

Variabelen, typen en functies importeren

De syntaxis voor het importeren van functionaliteit uit een ander Bicep-bestand is:

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

Met optionele aliasing om de naam van symbolen te wijzigen:

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

Gebruik de syntaxis voor het importeren van jokertekens:

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

U kunt de voorgaande syntaxis combineren en vergelijken. Als u geïmporteerde symbolen wilt openen met behulp van de jokertekensyntaxis, moet u de . operator: <alias_name>.<exported_symbol>.

Alleen instructies waarnaar wordt verwezen in het bestand waarnaar wordt verwezen, zijn beschikbaar voor import.

U kunt de functionaliteit gebruiken die is geïmporteerd uit een ander bestand zonder beperkingen. U kunt bijvoorbeeld geïmporteerde variabelen gebruiken waar een variabele die in het bestand is gedeclareerd, normaal gesproken geldig is.

Opmerking

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

Naamruimten en extensies importeren (preview)

Notitie

De experimentele functie extensibility moet zijn ingeschakeld vanuit het Bicep-configuratiebestand om deze functie te kunnen gebruiken.

De syntaxis voor het importeren van naamruimten is:

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

Beide az en sys zijn ingebouwde Bicep-naamruimten. Ze worden standaard geïmporteerd. Zie Gegevenstypen en Bicep-functies voor meer informatie over de gegevenstypen en de functies die zijn gedefinieerd in az ensys.

De syntaxis voor het importeren van Bicep-extensies is:

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

De syntaxis voor het importeren van Bicep-extensies, waarvoor configuratie is vereist, is:

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

Zie bicep Kubernetes-extensie voor een voorbeeld.