Dokumentacja schematu właściwości eksportu manifestu zasobu DSC
Streszczenie
Definiuje sposób pobierania bieżącego stanu każdego wystąpienia zasobu DSC.
Metadane
SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/resource/manifest.export.json
Type: object
Opis
Zasób DSC oparty na poleceniach, który może wyliczać każde wystąpienie samego siebie za pomocą jednego polecenia, powinien zdefiniować export
właściwość w manifeście. Ta właściwość definiuje sposób, w jaki dsC może uzyskać bieżący stan dla każdego wystąpienia zasobu. Po zdefiniowaniu tej właściwości użytkownicy mogą wykonywać następujące czynności:
- Określ wystąpienie zasobu w konfiguracji wejściowej polecenia eksportu dsc config , aby wygenerować dokument konfiguracji do użycia.
- Określ zasób za pomocą polecenia eksportu zasobów dsc , aby wygenerować dokument konfiguracji, który definiuje każde wystąpienie zasobu.
- Określ zasób za pomocą polecenia get zasobu dsc i opcję --all , aby zwrócić bieżący stan dla każdego wystąpienia zasobu.
Gdy dsC wywołuje polecenie zdefiniowane przez tę właściwość, zasób musi zwrócić bieżący stan każdego wystąpienia jako wiersze JSON. Każdy wiersz JSON powinien być obiektem reprezentującym wystąpienie i zweryfikować względem zdefiniowanego schematu wystąpienia zasobu.
DsC wysyła dane do tego polecenia na trzy sposoby:
- Gdy
input
jeststdin
to , DSC wysyła dane jako ciąg reprezentujący dane jako skompresowany obiekt JSON bez spacji lub nowych linii między właściwościami obiektu. - Gdy
input
jest toenv
, DSC wysyła dane jako zmienne środowiskowe. Tworzy zmienną środowiskową dla każdej właściwości w obiekcie danych wejściowych przy użyciu nazwy i wartości właściwości. - Gdy tablica
args
zawiera definicję argumentu wejściowego JSON, DSC wysyła dane jako ciąg reprezentujący dane jako skompresowany obiekt JSON do określonego argumentu.
Jeśli nie zdefiniujesz właściwości i nie zdefiniujesz argumentu input
wejściowego JSON, usługa DSC nie może przekazać wejściowego kodu JSON do zasobu. Dla polecenia można zdefiniować tylko jeden argument wejściowy JSON.
Należy zdefiniować input
właściwość , jeden argument wejściowy JSON w tablicy args
właściwości lub oba te elementy.
Wymagane właściwości
Definicja export
musi zawierać następujące właściwości:
Właściwości
Pliku wykonywalnego
Właściwość executable
definiuje nazwę polecenia do uruchomienia. Wartość musi być nazwą polecenia wykrywalnego w zmiennej środowiskowej systemu PATH
lub pełną ścieżką do polecenia. Rozszerzenie pliku jest wymagane tylko wtedy, gdy polecenie nie jest rozpoznawalne przez system operacyjny jako plik wykonywalny.
Type: string
Required: true
args
Właściwość args
definiuje listę argumentów, które mają być przekazywane do polecenia. Argumenty mogą być dowolną liczbą ciągów. Jeśli chcesz przekazać obiekt JSON reprezentujący torbę właściwości dla zasobu do argumentu, możesz zdefiniować pojedynczy element w tablicy jako obiekt [JSON], wskazując nazwę argumentu z jsonInputArg
właściwością string i czy argument jest obowiązkowy dla polecenia z mandatory
właściwością logiczną.
Type: array
Required: false
Default: []
Type: [string, object(JSON Input Argument)]
Argumenty ciągów
Każdy element w tablicy argumentów może być ciągiem reprezentującym argument statyczny, który ma zostać przekazany do polecenia, na przykład config
lub --format
.
Type: string
Argument wejściowy JSON
Definiuje argument polecenia, który akceptuje obiekt wejściowy JSON jako ciąg. DsC przekazuje dane wejściowe JSON do nazwanego argumentu, gdy jest dostępny. Argument wejściowy JSON jest definiowany jako obiekt JSON z następującymi właściwościami:
jsonInputArg
(wymagane) — argument umożliwiający przekazanie danych JSON do polecenia, na przykład--input
.mandatory
(opcjonalnie) — wskazuje, czy dsC zawsze powinien przekazać argument do polecenia, nawet jeśli nie ma danych wejściowych JSON dla polecenia. W takim przypadku DSC przekazuje pusty ciąg do argumentu wejściowego JSON.
Można zdefiniować tylko jeden argument wejściowy JSON dla tablicy argumentów.
Jeśli zdefiniujesz argument wejściowy JSON i input
rodzaj polecenia, usługa DSC wysyła dane JSON na oba sposoby:
- Jeśli definiujesz
input
jakoenv
argument wejściowy JSON i, DSC ustawia zmienną środowiskową dla każdej właściwości w danych wejściowych JSON i przekazuje obiekt wejściowy JSON jako ciąg do zdefiniowanego argumentu. - Jeśli definiujesz
input
jakostdin
i argument wejściowy JSON, DSC przekazuje dane wejściowe JSON przez stdin i jako ciąg do zdefiniowanego argumentu. - Jeśli definiujesz argument wejściowy JSON bez definiowania
input
właściwości, dsC przekazuje tylko dane wejściowe JSON jako ciąg do zdefiniowanego argumentu.
Jeśli nie zdefiniujesz właściwości i nie zdefiniujesz argumentu input
wejściowego JSON, usługa DSC nie może przekazać wejściowego kodu JSON do zasobu. Powoduje to, że manifest jest nieprawidłowy. Należy zdefiniować input
właściwość, argument wejściowy JSON w tablicy args
właściwości lub oba te elementy.
Type: object
RequiredProperties: [jsonInputArg]
wejście
Właściwość input
definiuje sposób przekazywania danych wejściowych do zasobu. Jeśli ta właściwość nie jest zdefiniowana, a definicja nie definiuje argumentu wejściowego JSON, usługa DSC nie wysyła żadnych danych wejściowych do zasobu podczas wywoływania export
operacji.
Wartość tej właściwości musi być jednym z następujących ciągów:
env
— Wskazuje, że zasób oczekuje, że właściwości wystąpienia mają być określone jako zmienne środowiskowe o tych samych nazwach i wielkości liter.Ta opcja obsługuje tylko następujące typy danych dla właściwości wystąpienia:
boolean
integer
number
string
array
wartościinteger
array
wartościnumber
array
wartościstring
W przypadku wartości innych niż tablica DSC ustawia zmienną środowiskową na określoną wartość zgodnie z wartością. Gdy typ danych jest tablicą wartości, DSC ustawia zmienną środowiskową jako ciąg rozdzielany przecinkami. Na przykład właściwość
foo
z wartością[1, 2, 3]
jest zapisywana w zmiennej środowiskowejfoo
jako"1,2,3"
.Jeśli zasób musi obsługiwać złożone właściwości z wartością
object
lub tablicami wieloczęściowymi, ustaw tę wartość nastdin
.stdin
— Wskazuje, że zasób oczekuje obiektu blob JSON reprezentującego wystąpienie zstdin
klasy . Kod JSON musi być zgodny ze schematem wystąpienia zasobu.
Type: string
Required: false
ValidValues: [env, stdin]