Freigeben über


Referenz zur DSC-Ressourcenmanifest-Schemaeigenschaft

Übersicht

Definiert, wie das JSON-Schema abgerufen wird, das eine DSC-Ressourcen-instance überprüft.

Metadaten

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

Beschreibung

Jede befehlsbasierte DSC-Ressource muss die schema Eigenschaft in ihrem Manifest definieren. Diese Eigenschaft definiert, wie DSC das JSON-Schema abrufen kann, das zum Überprüfen von Instanzen der Ressource benötigt wird.

Das JSON-Schema kann dynamisch mit der Befehlseigenschaft oder statisch mit der eingebetteten Eigenschaft definiert werden.

Für Entwicklungszwecke kann es bequemer sein, die command -Eigenschaft zu verwenden und zu vermeiden, dass sowohl der Code als auch das Schema angepasst werden müssen.

Microsoft empfiehlt die Verwendung der embedded Eigenschaft beim öffentlichen Veröffentlichen einer Ressource. Wenn das Manifest das Schema mit der command -Eigenschaft deklariert, ruft DSC den Befehl am Anfang eines beliebigen Vorgangs mithilfe der Ressource auf, was sich möglicherweise auf die Leistung auswirkt. Das Schema ist auch für die Integration von Tools nicht verfügbar, wenn die Ressource nicht lokal installiert ist. Wenn das Schema in das Manifest eingebettet ist, benötigen DSC und Integrationstools nur das Manifest selbst.

Beispiele

Beispiel 1: Abrufen eines JSON-Schemas mit einem Befehl

Dieses Beispiel stammt aus der Microsoft.Windows/Registry DSC-Ressource.

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

Wenn die command Eigenschaft definiert ist, ruft DSC das JSON-Schema ab, um Instanzen dieser Ressource mit dem folgenden Befehl zu überprüfen:

registry schema

Beispiel 2: Eingebettetes JSON-Schema

Dieses Beispiel stammt aus der Microsoft/OSInfo DSC-Ressource. Es definiert ein eingebettetes JSON-Schema, das DSC verwendet, um eine instance der Ressource zu überprüfen.

"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"] }
    }
  }
}

Erforderliche Eigenschaften

Die schema Definition muss genau eine der folgenden Eigenschaften enthalten:

Eigenschaften

command

Die command -Eigenschaft definiert, wie DSC die Ressource aufrufen muss, um das JSON-Schema abzurufen, das ihre Instanzen überprüft. Der Wert dieser Eigenschaft muss ein -Objekt sein und die executable -Eigenschaft definieren.

Beim Veröffentlichen eines Manifests mit der command -Eigenschaft empfiehlt Microsoft, das JSON-Schema in einem öffentlich verfügbaren URI zu veröffentlichen und die url Eigenschaft auf diesen URI festzulegen. Dadurch können Erstellungstools und andere integrierende Anwendungen Instanzen überprüfen, ohne den Befehl lokal auszuführen.

Type:               object
RequiredProperties: [executable]

executable

Die executable -Eigenschaft definiert den Namen des auszuführenden Befehls. Der Wert muss der Name eines Befehls sein, der in der Umgebungsvariablen des PATH Systems ermittelt werden kann, oder der vollständige Pfad zum Befehl. Eine Dateierweiterung ist nur erforderlich, wenn der Befehl vom Betriebssystem nicht als ausführbare Datei erkennbar ist.

Type:     string
Required: true

args

Die args -Eigenschaft definiert ein Array von Zeichenfolgen, die als Argumente an den Befehl übergeben werden sollen. DSC übergibt die Argumente in der angegebenen Reihenfolge an den Befehl.

Type:     array
Required: false
Default:  []

Eingebettet

Die embedded -Eigenschaft definiert das vollständige JSON-Schema für DSC, um Instanzen der DSC-Ressource zu überprüfen. Der Wert für diese Eigenschaft muss ein gültiges JSON-Schema sein, das die $schemaSchlüsselwörter , typeund properties definiert.

Type:                 object
MinimumPropertyCount: 1

url

Die url -Eigenschaft definiert die URL zum veröffentlichten JSON-Schema der Ressource. Es wird verwendet, indem Tools für Ressourcen integriert werden, die die command -Eigenschaft anstelle der embedded -Eigenschaft definieren.

Type:   string
Format: uri