Dela via


Schema för DSC-konfigurationsdokumentresursinstans

Synopsis

Definierar en DSC-resursinstans i ett konfigurationsdokument.

Metadata

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

Description

Egenskapen resources för ett DSC-konfigurationsdokument innehåller alltid minst en DSC-resursinstans. Tillsammans definierar instanserna i en konfiguration önskat tillstånd som DSC kan hämta, testa och ange på en dator.

Det här dokumentet beskriver JSON-schemat för en giltig DSC-resursinstans i ett konfigurationsdokument.

Mer information om DSC-resurser finns i Anatomi för en kommandobaserad DSC-resurs.

Nödvändiga egenskaper

Varje resursinstans måste vara ett objekt som definierar dessa egenskaper:

Egenskaper

name

Egenskapen name för en resursinstans definierar det korta, läsbara namnet för en DSC-resursinstans. Den här egenskapen måste vara unik i ett DSC-konfigurationsdokument. Om några resursinstanser har samma namn genererar DSC ett fel.

Instansnamnet måste vara en icke-tom sträng som endast innehåller bokstäver, siffror och blanksteg.

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

typ

Egenskapen type identifierar instansens DSC-resurs. Värdet för den här egenskapen måste vara det giltiga fullständigt kvalificerade typnamnet för resursen. Mer information om typnamn finns i schemareferensen för DSC-resursens fullständigt kvalificerade typnamn.

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

properties

För properties en resursinstans definierar du önskat tillstånd. Värdet för den här egenskapen måste vara ett objekt. För kontrollresurser kan värdet vara ett tomt objekt ({}). DSC använder DSC-resursens instansschema för att verifiera de definierade egenskaperna.

Type:     object
Required: true

dependsOn

Om du vill deklarera att en resursinstans är beroende av en annan instans i konfigurationen definierar du dependsOn egenskapen.

Den här egenskapen definierar en lista över DSC-resursinstanser som DSC måste bearbeta innan den här instansen bearbetas. Varje värde för den här egenskapen måste vara resourceID() -funktionssökningen för en annan instans i konfigurationen. Flera instanser kan vara beroende av samma instans, men varje beroende för en instans måste vara unikt i den instansens dependsOn egenskap.

Funktionen resourceID() använder den här syntaxen:

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

Värdet <resource-type-name> är egenskapen för type den beroende resursen och <instance-name> är beroendets name egenskap. När du lägger till ett beroende i ett YAML-formatkonfigurationsdokument omsluter du alltid sökningen resourceID() med dubbla citattecken (").

Den här instansen beror till exempel på en instans av resursen Microsoft.Windows/Registry med namnet 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')]"

Anteckning

När du definierar beroenden för kapslade resursinstanser kan instanser bara referera till beroenden i samma resursprovider eller gruppinstans. De kan inte använda resourceId() funktionen för att söka efter instanser på den översta nivån i konfigurationsdokumentet eller inuti en annan provider eller gruppinstans.

Om en instans på den översta nivån är beroende av en kapslad instans använder du resourceId() funktionen för att leta upp instansen av providern eller gruppen som innehåller beroendeinstansen i stället.

Mer information om hur du använder funktioner i konfigurationsdokument finns i referens för dokumentfunktioner för DSC-konfiguration. Mer information om funktionen finns i resourceId()resourceId.

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