Udostępnij za pośrednictwem


Importy w Bicep

W tym artykule opisano składnię używaną do eksportowania i importowania udostępnionych funkcji i przestrzeni nazw dla rozszerzeń Bicep. Użycie importu w czasie kompilacji automatycznie włącza generowanie kodu w wersji 2.0 .

Eksportowanie zmiennych, typów i funkcji

Dekorator @export() wskazuje, że inny plik może zaimportować określoną instrukcję. Ten dekorator jest prawidłowy tylko w instrukcjach type, vari func . Instrukcje zmiennych oznaczone za pomocą @export() muszą być stałymi czasu kompilacji.

Składnia eksportowania funkcji do użycia w innych plikach Bicep to:

@export()
<statement_to_export>

Importowanie zmiennych, typów i funkcji

Składnia importowania funkcji z innego pliku Bicep to:

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

W przypadku opcjonalnego aliasu w celu zmiany nazwy symboli:

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

Korzystając ze składni importowania symboli wieloznacznych:

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

Można mieszać i dopasowywać poprzednie składnie. Aby uzyskać dostęp do importowanych symboli przy użyciu składni symboli wieloznacznych, należy użyć . operatora : <alias_name>.<exported_symbol>.

Do importowania są dostępne tylko instrukcje wyeksportowane w przywoływanym pliku.

Możesz użyć funkcji zaimportowanych z innego pliku bez ograniczeń. Można na przykład użyć zaimportowanych zmiennych w dowolnym miejscu, w którym zmienna zadeklarowana w pliku będzie normalnie prawidłowa.

Przykład

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

Importowanie przestrzeni nazw i rozszerzeń (wersja zapoznawcza)

Uwaga

Aby korzystać z tej funkcji, należy włączyć funkcję extensibility eksperymentalną z pliku konfiguracji Bicep.

Składnia importowania przestrzeni nazw to:

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

Obie az i sys są wbudowanymi przestrzeniami nazw Bicep. Są one domyślnie importowane. Aby uzyskać więcej informacji na temat typów danych i funkcji zdefiniowanych w az systemach i sys, zobacz Typy danych i funkcje Bicep.

Składnia importowania rozszerzeń Bicep to:

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

Składnia importowania rozszerzeń Bicep, które wymagają konfiguracji, to:

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

Aby zapoznać się z przykładem, zobacz rozszerzenie Bicep Kubernetes.