Udostępnij za pośrednictwem


Dokumentacja właściwości schematu manifestu zasobu DSC

Streszczenie

Definiuje sposób pobierania schematu JSON, który weryfikuje wystąpienie 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.schema.json
Type:          object

Opis

Każdy zasób DSC oparty na poleceniach musi zdefiniować schema właściwość w manifeście. Ta właściwość określa, jak usługa DSC może pobrać schemat JSON, który musi zweryfikować wystąpienia zasobu.

Schemat JSON można zdefiniować dynamicznie za pomocą właściwości polecenia lub statycznie z właściwością osadzoną .

W celach programistycznych można wygodniej używać command właściwości i unikać konieczności dostosowywania zarówno kodu, jak i schematu.

Firma Microsoft zaleca używanie embedded właściwości podczas publikowania zasobu publicznie. Gdy manifest deklaruje schemat z właściwością command , DSC wywołuje polecenie na początku dowolnej operacji przy użyciu zasobu, prawdopodobnie wpływając na wydajność. Schemat jest również niedostępny do integrowania narzędzi, gdy zasób nie jest zainstalowany lokalnie. Gdy schemat jest osadzony w manifeście, narzędzie DSC i integrowanie narzędzi wymaga tylko samego manifestu.

Przykłady

Przykład 1 — pobieranie schematu JSON za pomocą polecenia

Ten przykład pochodzi z Microsoft.Windows/Registry zasobu DSC.

"schema": {
  "command": {
    "executable": "registry",
    "args": ["schema"]
  }
}

Po zdefiniowaniu command właściwości DSC pobiera schemat JSON w celu zweryfikowania wystąpień tego zasobu za pomocą następującego polecenia:

registry schema

Przykład 2 — osadzony schemat JSON

Ten przykład pochodzi z Microsoft/OSInfo zasobu DSC. Definiuje osadzony schemat JSON używany przez dsC do sprawdzania poprawności wystąpienia zasobu.

"schema": {
  "embedded": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "OSInfo",
    "type": "object",
    "required": [],
    "properties": {
      "$id": { "type": "string" },
      "architecture": { "type": ["string","null"] },
      "bitness": { "$ref": "#/definitions/Bitness" },
      "codename": { "type": ["string","null"] },
      "edition": { "type": ["string","null"] },
      "family": { "$ref": "#/definitions/Family" },
      "version": { "type": "string" }
    },
    "additionalProperties": false,
    "definitions": {
      "Bitness": { "type": "string", "enum": ["32","64","unknown"] },
      "Family": { "type": "string", "enum": ["Linux","macOS","Windows"] }
    }
  }
}

Wymagane właściwości

Definicja schema musi zawierać dokładnie jedną z następujących właściwości:

Właściwości

command

Właściwość command definiuje sposób, w jaki DSC musi wywołać zasób, aby uzyskać schemat JSON, który weryfikuje jego wystąpienia. Wartość tej właściwości musi być obiektem i zdefiniować executable właściwość.

Podczas publikowania manifestu command za pomocą właściwości firma Microsoft zaleca opublikowanie schematu JSON publicznie dostępnego identyfikatora URI i ustawienie url właściwości na ten identyfikator URI. Umożliwia to tworzenie narzędzi i innych integrujących aplikacje w celu weryfikacji wystąpień bez lokalnego uruchamiania polecenia.

Type:               object
RequiredProperties: [executable]

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 tablicę ciągów, które mają być przekazywane jako argumenty do polecenia. DSC przekazuje argumenty do polecenia w kolejności ich określenia.

Type:     array
Required: false
Default:  []

osadzona

Właściwość embedded definiuje pełny schemat JSON dla dsC, aby zweryfikować wystąpienia zasobu DSC. Wartość tej właściwości musi być prawidłowym schematem JSON, który definiuje $schemasłowa kluczowe , i properties . type

Type:                 object
MinimumPropertyCount: 1

url

Właściwość url definiuje adres URL opublikowanego schematu JSON zasobu. Jest on używany przez integrowanie narzędzi dla zasobów, które definiują command właściwość zamiast embedded właściwości.

Type:   string
Format: uri