Импорт в Bicep

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

Экспорт типов, переменных и функций (предварительная версия)

Примечание.

Для использования этой функции требуется интерфейс командной строки Bicep версии 0.23.X или более поздней . Экспериментальная функция compileTimeImports должна быть включена из файла конфигурации Bicep. Для определяемых пользователем функций экспериментальная функция userDefinedFunctions также должна быть включена.

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

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

@export()
<statement_to_export>

Импорт типов, переменных и функций (предварительная версия)

Примечание.

Для использования этой функции требуется интерфейс командной строки Bicep версии 0.23.X или более поздней . Экспериментальная функция compileTimeImports должна быть включена из файла конфигурации Bicep. Для определяемых пользователем функций экспериментальная функция userDefinedFunctions также должна быть включена.

Синтаксис импорта функций из другого файла 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>'

Вы можете смешивать и соответствовать приведенным выше синтаксисам. Чтобы получить доступ к импортированным символам с помощью синтаксиса wild карта, необходимо использовать . оператор: <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 'az@1.0.0'
import 'sys@1.0.0'

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

Синтаксис импорта поставщиков расширяемости Bicep:

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

Синтаксис импорта поставщиков расширяемости Bicep, требующих настройки:

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

Пример см. в разделе Bicep расширяемости поставщика Kubernetes.

Следующие шаги