Condividi tramite


Importazioni in Bicep

Questo articolo descrive la sintassi usata per esportare e importare funzionalità e spazi dei nomi condivisi. L'uso delle importazioni in fase di compilazione abilita automaticamente la generazione del codice della versione 2.0 del linguaggio.

Esportare variabili, tipi e funzioni

L'elemento @export() decorator indica che un altro file può importare un'istruzione specifica. Questo elemento decorator è valido solo nelle typeistruzioni , vare func . Le istruzioni variabili contrassegnate con @export() devono essere costanti in fase di compilazione.

La sintassi per l'esportazione delle funzionalità da usare in altri file Bicep è:

@export()
<statement_to_export>

Importare variabili, tipi e funzioni

La sintassi per l'importazione di funzionalità da un altro file Bicep è:

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

Con l'aliasing facoltativo per rinominare i simboli:

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

Uso della sintassi di importazione con caratteri jolly:

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

Puoi combinare e associare le sintassi precedenti. Per accedere ai simboli importati usando la sintassi con caratteri jolly, è necessario usare l'operatore . : <alias_name>.<exported_symbol>.

Per l'importazione sono disponibili solo le istruzioni esportate nel file a cui si fa riferimento.

È possibile usare le funzionalità importate da un altro file senza restrizioni. Ad esempio, è possibile usare variabili importate in qualsiasi punto in cui una variabile dichiarata nel file sia normalmente valida.

Esempio

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

Importa spazi dei nomi

La sintassi per l'importazione degli spazi dei nomi è:

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

Sia az che sys sono spazi dei nomi integrati in Bicep. Vengono importati per impostazione predefinita. Per ulteriori informazioni sui tipi di dati e sulle funzioni definite in az e sys, vedere Tipi di dati e funzioni Bicep.