Delen via


Invoer in Bicep

In dit artikel worden de syntaxis beschreven die u gebruikt voor het exporteren en importeren van gedeelde functionaliteit, evenals naamruimten voor Bicep-uitbreidbaarheidsproviders.

Typen, variabelen en functies exporteren

De @export() decorator wordt gebruikt om aan te geven dat een bepaalde instructie kan worden geïmporteerd door een ander bestand. Deze decorator is alleen geldig voor type-, variabele- en functie-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>

Typen, variabelen 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 syntaxis van het jokerteken, moet u de . operator gebruiken: <alias_name>.<exported_symbol>

Alleen instructies waarnaar wordt verwezen in het bestand waarnaar wordt verwezen, zijn beschikbaar om te worden geïmporteerd.

Functionaliteit die is geïmporteerd uit een ander bestand, kan zonder beperkingen worden gebruikt. Geïmporteerde variabelen kunnen bijvoorbeeld overal worden gebruikt 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 uitbreidbaarheidsproviders 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-uitbreidbaarheidsproviders is:

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

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

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

Zie voor een voorbeeld bicep-uitbreidbaarheid kubernetes-provider.

Volgende stappen