Udostępnij za pośrednictwem


Schemat wystąpienia zasobu dokumentu konfiguracji DSC

Streszczenie

Definiuje wystąpienie zasobu DSC w dokumencie konfiguracji.

Metadane

SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID:      https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.resource.json
Type:          object

Opis

Właściwość resources dokumentu konfiguracji DSC zawsze zawiera co najmniej jedno wystąpienie zasobu DSC. Razem wystąpienia w konfiguracji definiują żądany stan, który DSC może uzyskać, przetestować i ustawić na maszynie.

W tym dokumencie opisano schemat JSON dla prawidłowego wystąpienia zasobu DSC w dokumencie konfiguracji.

Aby uzyskać więcej informacji na temat zasobów DSC, zobacz Anatomia zasobu DSC opartego na poleceniach.

Wymagane właściwości

Każde wystąpienie zasobu musi być obiektem definiującym następujące właściwości:

Właściwości

name

Właściwość name wystąpienia zasobu definiuje krótką, czytelną dla człowieka nazwę wystąpienia zasobu DSC. Ta właściwość musi być unikatowa w dokumencie konfiguracji DSC. Jeśli jakiekolwiek wystąpienia zasobów mają taką samą nazwę, rozszerzenie DSC zgłasza błąd.

Nazwa wystąpienia musi być ciągiem niepustym zawierającym tylko litery, cyfry i spacje.

Type:          string
Required:      true
MinimumLength: 1
Pattern:       ^[a-zA-Z0-9 ]+$

typ

Właściwość type identyfikuje zasób DSC wystąpienia. Wartość tej właściwości musi być prawidłową w pełni kwalifikowaną nazwą typu zasobu. Aby uzyskać więcej informacji na temat nazw typów, zobacz Dokumentacja schematu w pełni kwalifikowanej nazwy typu zasobu DSC.

Type:     string
Required: true
Pattern:  ^\w+(\.\w+){0,2}\/\w+$

properties

Element properties wystąpienia zasobu definiuje żądany stan. Wartość tej właściwości musi być obiektem. W przypadku zasobów asercji wartość może być pustym obiektem ({}). Rozszerzenie DSC używa schematu wystąpienia zasobu DSC do weryfikowania zdefiniowanych właściwości.

Type:     object
Required: true

dependsOn

Aby zadeklarować, że wystąpienie zasobu jest zależne od innego wystąpienia w konfiguracji, zdefiniuj dependsOn właściwość .

Ta właściwość definiuje listę wystąpień zasobów DSC, które należy pomyślnie przetworzyć przed przetworzeniem tego wystąpienia. Każda wartość tej właściwości musi być wyszukiwaniem funkcji resourceID() dla innego wystąpienia w konfiguracji. Wiele wystąpień może zależeć od tego samego wystąpienia, ale każda zależność dla wystąpienia musi być unikatowa dependsOn we właściwości tego wystąpienia.

Funkcja resourceID() używa tej składni:

"[resourceId('<resource-type-name>', '<instance-name>']"

Wartość <resource-type-name> jest właściwością type zasobu zależnego i <instance-name> jest właściwością zależności name . Podczas dodawania zależności w dokumencie konfiguracji formatu YAML zawsze zawijaj resourceID() wyszukiwanie w cudzysłowach (").

Na przykład to wystąpienie zależy od wystąpienia Microsoft.Windows/Registry zasobu o nazwie Tailspin Key:

- name: Tailspin Key
  type: Microsoft.Windows/Registry
  properties:
    keyPath: HKCU\tailspin
    _ensure: Present
- name: Update Tailspin Automatically
  type: Microsoft.Windows/Registry
  properties:
    keyPath:   HKCU\tailspin\updates
    valueName: automatic
    valueData:
      String: enable
  dependsOn:
    - "[resourceId('Microsoft.Windows/Registry', 'Tailspin Key')]"

Uwaga

Podczas definiowania zależności dla zagnieżdżonych wystąpień zasobów wystąpienia mogą odwoływać się tylko do zależności w tym samym dostawcy zasobów lub wystąpieniu grupy. Nie mogą używać resourceId() funkcji do wyszukiwania wystąpień na najwyższym poziomie dokumentu konfiguracji lub wewnątrz innego dostawcy lub wystąpienia grupy.

Jeśli wystąpienie najwyższego poziomu zależy od wystąpienia zagnieżdżonego, użyj resourceId() funkcji , aby wyszukać wystąpienie dostawcy lub grupy zawierającej wystąpienie zależności.

Aby uzyskać więcej informacji na temat używania funkcji w dokumentach konfiguracji, zobacz dokumentacja funkcji konfiguracji DSC. Aby uzyskać więcej informacji na temat resourceId() funkcji, zobacz resourceId.

Type:              array
Required:          false
ItemsMustBeUnique: true
ItemsType:         string
ItemsPattern:      ^\[resourceId\(\s*'\w+(\.\w+){0,2}\/\w+'\s*,\s*'[a-zA-Z0-9 ]+'\s*\)\]$