Udostępnij za pośrednictwem


Importy w Bicep

W tym artykule opisano składnię używaną do eksportowania i importowania funkcji udostępnionych, a także przestrzeni nazw dla dostawców rozszerzalności Bicep.

Eksportowanie typów, zmiennych i funkcji (wersja zapoznawcza)

Dekorator @export() służy do wskazywania, że dana instrukcja może zostać zaimportowana przez inny plik. Ten dekorator jest prawidłowy tylko dla instrukcji typu, zmiennej i funkcji. 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 typów, zmiennych i funkcji (wersja zapoznawcza)

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>.

Importowane są tylko instrukcje wyeksportowane w przywoływanym pliku.

Funkcje zaimportowane z innego pliku mogą być używane bez ograniczeń. Na przykład zaimportowane zmienne mogą być używane w dowolnym miejscu, w jakim 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 dostawców rozszerzalności (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 dostawców rozszerzalności Bicep jest następująca:

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

Składnia importowania dostawców rozszerzalności Bicep, którzy wymagają konfiguracji, to:

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

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

Następne kroki