Condividi tramite


Importazioni in Bicep

Questo articolo descrive la sintassi usata per esportare e importare funzionalità condivise, nonché spazi dei nomi per i provider di estendibilità Bicep.

Esportazione di tipi, variabili e funzioni (anteprima)

L’elemento decorator @export() viene usato per indicare che una determinata istruzione può essere importata da un altro file. Questo elemento decorator è valido solo per istruzioni di tipo, variabile e funzione. 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 tipi, variabili e funzioni (anteprima)

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, devi usare .operatore: <alias_name>.<exported_symbol>.

Solo le istruzioni che sono state esportate nel file a cui si fa riferimento sono disponibili per l’importazione.

La funzionalità importata da un altro file può essere usata senza restrizioni. Ad esempio, le variabili importate possono essere usate ovunque una variabile dichiarata in-file sia solitamente 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

Importare spazi dei nomi e provider di estendibilità (anteprima)

Nota

La funzionalità sperimentale extensibility deve essere abilitata dal file di configurazione Bicep per usare tale funzionalità.

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.

La sintassi per l'importazione di provider di estendibilità Bicep è:

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

La sintassi per l'importazione di provider di estendibilità Bicep che richiedono la configurazione è:

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

Per un esempio, vedi Provider Kubernetes di estendibilità Bicep.

Passaggi successivi