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 $schema
Schlüsselwörter , type
und 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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für