Partilhar via


Importações em Bicep

Este artigo descreve a sintaxe que você usa para exportar e importar funcionalidades e namespaces compartilhados. O uso de importações em tempo de compilação habilita automaticamente a geração de código da versão 2.0 do idioma.

Exportar variáveis, tipos e funções

O @export() decorador indica que outro arquivo pode importar uma declaração específica. Este decorador só é válido em type, var, e func declarações. As instruções de variáveis marcadas com @export() devem ser constantes de tempo de compilação.

A sintaxe para exportar a funcionalidade para uso em outros arquivos Bicep é:

@export()
<statement_to_export>

Importar variáveis, tipos e funções

A sintaxe para importar a funcionalidade de outro arquivo Bicep é:

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

Com aliasing opcional para renomear símbolos:

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

Usando a sintaxe de importação curinga:

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

Você pode misturar e combinar as sintaxes anteriores. Para acessar símbolos importados usando a sintaxe curinga, você deve usar o . operador: <alias_name>.<exported_symbol>.

Somente as instruções que foram exportadas no arquivo que está sendo referenciado estão disponíveis para importação.

Você pode usar a funcionalidade que foi importada de outro arquivo sem restrições. Por exemplo, você pode usar variáveis importadas em qualquer lugar que uma variável declarada no arquivo normalmente seria válida.

A partir da CLI do Bicep versão 0.31.X, as variáveis importadas de outros arquivos Bicep são acessíveis dentro de suas funções definidas pelo usuário, assim como as variáveis definidas localmente. Para obter mais informações, consulte Funções definidas pelo usuário.

Exemplo

exportações.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

Importar namespaces

A sintaxe para importar namespaces é:

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

Ambos az e sys são namespaces internos do Bicep. Eles são importados por padrão. Para obter mais informações sobre os tipos de dados e as funções definidas em az e sys, consulte Tipos de dados e funções do Bíceps.