Partilhar via


Importações em Bicep

Este artigo descreve a sintaxe que você usa para exportar e importar funcionalidades compartilhadas e namespaces para extensões Bicep. 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.

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 e extensões (visualização)

Nota

O recurso extensibility experimental deve ser habilitado a partir do arquivo de configuração do Bicep para usar esse recurso.

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.

A sintaxe para importar extensões Bicep é:

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

A sintaxe para importar extensões Bicep, que requerem configuração é:

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

Para obter um exemplo, consulte Extensão Bicep Kubernetes.