Поделиться через


Импорт в Bicep

В этой статье описывается синтаксис, используемый для экспорта и импорта общих функций и пространств имен для расширений Bicep. При использовании импорта во время компиляции автоматически включается создание кода версии 2.0 .

Экспорт переменных, типов и функций

Декоратор @export() указывает, что другой файл может импортировать определенную инструкцию. Этот декоратор действителен только для typeинструкций varи func инструкций. Операторы переменных, помеченные константами @export() времени компиляции, должны быть константами времени компиляции.

Синтаксис экспорта функций для использования в других файлах Bicep:

@export()
<statement_to_export>

Импорт переменных, типов и функций

Синтаксис импорта функций из другого файла Bicep:

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

При необходимости псевдоним для переименования символов:

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

Использование синтаксиса импорта подстановочных знаков:

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

Вы можете смешивать и соответствовать приведенным выше синтаксисам. Чтобы получить доступ к импортированным символам с помощью синтаксиса подстановочных знаков, необходимо использовать . оператор: <alias_name>.<exported_symbol>

Для импорта доступны только операторы, экспортированные в файле, на которые ссылается ссылка.

Вы можете использовать функции, импортированные из другого файла без ограничений. Например, можно использовать импортированные переменные в любом месте, где переменная, объявленная в файле, обычно будет допустимой.

Пример

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

Импорт пространств имен и расширений (предварительная версия)

Примечание.

Экспериментальная функция extensibility должна быть включена из файла конфигурации Bicep, чтобы использовать эту функцию.

Синтаксис импорта пространств имен:

import '[email protected]'
import '[email protected]'

sys Оба az и являются встроенными пространствами имен Bicep. Импортируются по умолчанию. Дополнительные сведения о типах данных и функциях, определенных в az и sys, см. в разделе "Типы данных" и функции Bicep.

Синтаксис импорта расширений Bicep:

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

Синтаксис для импорта расширений Bicep, для которых требуется настройка:

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

Например, см . расширение Bicep Kubernetes.