Referenz zum DSC-Ressourcentypschema
Zusammenfassung
Gibt an, ob eine Ressource eine Adapterressource, eine Gruppenressource oder eine normale Ressource ist.
Metadaten
SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/definitions/resourceKind.json
Type: string
ValidValues: [Resource, Adapter, Group]
Beschreibung
DSC unterstützt drei Arten von befehlsbasierten DSC-Ressourcen:
Resource
– Gibt an, dass das Manifest nicht für eine Gruppen- oder Adapterressource vorgesehen ist.Group
– Gibt an, dass das Manifest für eine Gruppenressource gilt.Adapter
– Gibt an, dass das Manifest für eine Adapterressource gilt.
Wenn kind
nicht im Ressourcenmanifest definiert ist, leitet DSC den Wert für die Eigenschaft ab. Wenn die adapter
-Eigenschaft im Ressourcenmanifest definiert ist, leitet DSC den Wert von kind
als ab Adapter
. Wenn die adapter
-Eigenschaft nicht definiert ist, leitet DSC den Wert von kind
als ab Resource
.
DSC kann nicht ableiten, ob ein Manifest für eine Gruppenressource ist.
Wenn Sie eine Gruppenressource definieren, definieren Sie die kind
Eigenschaft im Manifest immer explizit als Group
.
Adapterressourcen
Eine Adapterressource stellt nicht befehlsbasierte Ressourcen für DSC zur Verfügung. Sie verfügen immer über eine resources
-Eigenschaft, die ein Array geschachtelter Ressourceninstanzen akzeptiert. Adapter bieten möglicherweise zusätzliche Kontrolle darüber, wie die angepassten Ressourcen verarbeitet werden.
Eine Adapterressource muss immer den Adapter definieren und eigenschaften im Ressourcenmanifest überprüfen .
Mit dem Microsoft.DSC/PowerShell
Adapter können Sie beispielsweise PsDSC-Ressourcen (PowerShell Desired State Configuration) in DSC verwenden. PSDSC-Ressourcen werden als Komponenten von PowerShell-Modulen veröffentlicht. Sie definieren keine Ressourcenmanifeste.
Gruppierung von Ressourcen
Gruppenressourcen werden immer auf geschachtelten DSC-Ressourceninstanzen ausgeführt. Gruppenressourcen können die Verarbeitung der geschachtelten Instanzen ändern, z. B. die Microsoft.DSC/Assertion
Gruppenressource.
Gruppenressourcen können auch verwendet werden, um Ressourcengruppen für die Verarbeitung zu bündeln, z. B. die Microsoft.DSC/Group
Ressource. Sie können die dependsOn-Eigenschaft für eine Ressource instance in einer Konfiguration verwenden, um auf eine Gruppenressource zu verweisen, anstatt jede Ressource in der Liste aufzulisten.
Geschachtelte Ressourceninstanzen
Die Ressourceninstanzen, die sowohl in Adapter- als auch in Gruppenressourcen deklariert sind, werden als geschachtelte Ressourceninstanzen bezeichnet. Bei geschachtelten Instanzen befindet sich eine Ressource instance angrenzend, wenn sie in derselben Gruppe oder im gleichen Adapter instance deklariert ist. Eine Ressource instance außerhalb einer geschachtelten instance, wenn sie außerhalb des gruppen- oder adapter-instance deklariert oder innerhalb einer angrenzenden Gruppen- oder Adapter-instance geschachtelt ist. Bei Instanzen der obersten Ebene sind andere Instanzen auf der obersten Ebene nebeneinander. Alle anderen Instanzen sind extern.
Sehen Sie sich den folgenden Konfigurationsausschnitt an. Sie definiert sieben Ressourceninstanzen:
- Auf der obersten Ebene definiert die Konfiguration die -,
TopLevelOSInfo
-TopLevelEcho
undTopLevelGroup
-Instanzen. - Die
TopLevelGroup
instance definiert die geschachtelten InstanzenNestedEcho
undNestedGroup
. - Die
NestedGroup
instance definiert die geschachtelten InstanzenDeeplyNestedEcho
undDeeplyNestedOSInfo
.
resources:
- name: TopLevelEcho
type: Test/Echo
properties: { output: 'top level instance' }
- name: TopLevelOSInfo
type: Microsoft/OSInfo
properties: { }
- name: TopLevelGroup
type: Microsoft.DSC/Group
properties:
$schema:
resources:
- name: NestedEcho
type: Test/Echo
properties: { output: 'nested instance' }
- name: NestedGroup
type: Microsoft.DSC/Group
properties:
$schema:
resources:
- name: DeeplyNestedEcho
type: Test/Echo
properties: { output: 'deeply nested instance' }
- name: DeeplyNestedOSInfo
type: Microsoft/OSInfo
properties: { }
Die folgende Matrix definiert die Beziehungen der einzelnen instance in der Konfiguration:
TopLevelEcho | TopLevelOSInfo | TopLevelGroup | NestedEcho | NestedGroup | DeeplyNestedEcho | DeeplyNestedOSInfo | |
---|---|---|---|---|---|---|---|
TopLevelEcho | Self | Angrenzend | Angrenzend | Extern | Extern | Extern | Extern |
TopLevelOSInfo | Angrenzend | Self | Angrenzend | Extern | Extern | Extern | Extern |
TopLevelGroup | Angrenzend | Angrenzend | Self | Extern | Extern | Extern | Extern |
NestedEcho | Extern | Extern | Extern | Self | Angrenzend | Extern | Extern |
NestedGroup | Extern | Extern | Extern | Angrenzend | Self | Extern | Extern |
DeeplyNestedEcho | Extern | Extern | Extern | Extern | Extern | Self | Angrenzend |
DeeplyNestedOSInfo | Extern | Extern | Extern | Extern | Extern | Angrenzend | Self |
Verweisen auf geschachtelte Instanzen
Geschachtelte Ressourceninstanzen weisen Einschränkungen für die dependsOn-Eigenschaft und die reference() -Konfigurationsfunktion auf.
- Sie können nur auf benachbarte Instanzen verweisen. Sie können nicht auf eine geschachtelte instance von außerhalb der Gruppe oder des Adapters verweisen, der sie deklariert. Sie können keinen Verweis auf eine Ressource außerhalb der Gruppen- oder Adapterressource für eine geschachtelte instance verwenden.
- Sie können die
dependsOn
-Eigenschaft nur für benachbarte Instanzen verwenden. Sie müssen eine Abhängigkeit von der Gruppe oder dem Adapter instance hinzufügen, keine geschachtelte instance der Gruppe oder des Adapters. Geschachtelte Instanzen können nicht von externen Instanzen abhängen.
Die folgenden Beispiele zeigen gültige und ungültige Verweise und Abhängigkeiten. In den Beispielen wird die Microsoft.DSC/Group
-Ressource verwendet, aber die Funktionalität ist für Adapterressourcen identisch.
Beispiel 1: Gültige Verweise und Abhängigkeiten
In dieser Beispielkonfiguration werden mehrere gültige Verweise und Abhängigkeiten definiert. Außerdem werden zwei Instanzen der Microsoft.DSC/Group
Ressource definiert, eine in der anderen geschachtelt.
Die oberste Ebene instance der Test/Echo
Ressource verweist und hängt vom instance der obersten Ebene der Microsoft/OSInfo
Ressource ab. Die Instanzen der Test/Echo
obersten Ebene der Ressourcen und Microsoft/OSInfo
hängen beide von der obersten instance der Microsoft.DSC/Group
Ressource ab.
resources:
# The top level echo references and depends on the top-level OSInfo.
# It also depends on the top-level Group.
- name: Top level echo
type: Test/Echo
properties:
output: >-
[reference(
resourceId('Microsoft/OSInfo', 'Top level OSInfo')
).actualState]
dependsOn:
- "[resourceId('Microsoft/OSInfo', 'Top level OSInfo')]"
- "[resourceId('Microsoft.DSC/Group', 'Top level group')]"
# The top level OSInfo depends on the top-level Group.
- name: Top level OSInfo
type: Microsoft/OSInfo
properties: {}
dependsOn:
- "[resourceId('Microsoft.DSC/Group', 'Top level group')]"
- name: Top level group
type: Microsoft.DSC/Group
properties: # snipped for brevity
Die instance der Microsoft.DSC/Group
obersten Ebene definiert drei geschachtelte Ressourceninstanzen: Test/Echo
, Microsoft/OSInfo
und Microsoft.DSC/Group
. Wie auf der obersten Ebene verweist der Test/Echo
instance auf die benachbarte geschachtelteMicrosoft/OSInfo
instance und hängt davon ab, dass instance von der angrenzenden geschachtelten Microsoft.DSC/Group
instance abhängt.
# Other top-level instances snipped for brevity
- name: Top level group
type: Microsoft.DSC/Group
properties:
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
# The nested echo references and depends on the adjacent nested OSInfo.
- name: Nested echo
type: Test/Echo
properties:
output: >-
[reference(
resourceId('Microsoft/OSInfo', 'Nested OSInfo')
).actualState]
dependsOn:
- "[resourceId('Microsoft/OSInfo', 'Nested OSInfo')]"
# The nested OSInfo depends on the adjacent nested Group.
- name: Nested OSInfo
type: Microsoft/OSInfo
properties: {}
- name: Nested Group
type: Microsoft.DSC/Group
properties: # snipped for brevity
Schließlich definiert die geschachtelte instance von Microsoft.DSC/Group
zwei geschachtelte Instanzen. Die tief geschachtelte instance von Test/Echo
Verweisen und hängt von der tief geschachtelten instance von Microsoft/OSInfo
ab.
- name: Top level group
type: Microsoft.DSC/Group
properties:
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
# Snipped the Test/Echo and Microsoft/OSInfo instances for brevity
- name: Nested Group
type: Microsoft.DSC/Group
properties:
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
# The deeply nested echo references and depends on the adjacent
# deeply nested OSInfo.
- name: Deeply nested echo
type: Test/Echo
properties:
output: >-
[reference(
resourceId('Microsoft/OSInfo', 'Deeply nested OSInfo')
).actualState]
dependsOn:
- "[resourceId('Microsoft/OSInfo', 'Deeply nested OSInfo')]"
- name: Deeply nested OSInfo
type: Microsoft.OSInfo
properties: {}
In jedem Fall beziehen sich die Verweise und Abhängigkeiten auf benachbarte Instanzen in der Konfiguration. Instanzen auf der obersten Ebene hängen nur von anderen Instanzen auf der obersten Ebene ab oder verweisen auf diese. Instanzen, die in der Gruppe der obersten Ebene geschachtelt sind, hängen nur von anderen geschachtelten Instanzen in derselben Gruppe ab oder verweisen darauf. Die tief geschachtelten Instanzen, die in der geschachtelten Gruppe definiert sind, hängen nur von anderen tief geschachtelten Instanzen in derselben Gruppe ab oder verweisen darauf.
Wenn Sie die Konfiguration zusammensetzen, erhalten Sie dieses vollständige Dokument:
# yaml-language-server: $schema=https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/bundled/resource/manifest.vscode.json
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
# The top level echo references and depends on the top-level OSInfo.
- name: Top level echo
type: Test/Echo
properties:
output: >-
[reference(
resourceId('Microsoft/OSInfo', 'Top level OSInfo')
).actualState]
dependsOn:
- "[resourceId('Microsoft/OSInfo', 'Top level OSInfo')]"
# The top level OSInfo depends on the top-level Group.
- name: Top level OSInfo
type: Microsoft/OSInfo
properties: {}
dependsOn:
- "[resourceId('Microsoft.DSC/Group', 'Top level group')]"
- name: Top level group
type: Microsoft.DSC/Group
properties:
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
# The nested echo references and depends on the adjacent nested OSInfo.
- name: Nested echo
type: Test/Echo
properties:
output: >-
[reference(
resourceId('Microsoft/OSInfo', 'Nested OSInfo')
).actualState]
dependsOn:
- "[resourceId('Microsoft/OSInfo', 'Nested OSInfo')]"
# The nested OSInfo depends on the adjacent nested Group.
- name: Nested OSInfo
type: Microsoft/OSInfo
properties: {}
- name: Nested Group
type: Microsoft.DSC/Group
properties:
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
# The deeply nested echo references and depends on the adjacent
# deeply nested OSInfo.
- name: Deeply nested echo
type: Test/Echo
properties:
output: >-
[reference(
resourceId('Microsoft/OSInfo', 'Deeply nested OSInfo')
).actualState]
dependsOn:
- "[resourceId('Microsoft/OSInfo', 'Deeply nested OSInfo')]"
- name: Deeply nested OSInfo
type: Microsoft.OSInfo
properties: {}
Beispiel 2: Ungültiger Verweis und Abhängigkeit von einem geschachtelten instance
Diese Beispielkonfiguration ist ungültig, da die instance der obersten Ebene der Test/Echo
Ressource verweist und von der geschachtelten Microsoft/OSInfo
instance abhängt. Die geschachtelte instance befindet sich außerhalb des instance der obersten Ebene und nicht nebenan.
# yaml-language-server: $schema=https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/bundled/resource/manifest.vscode.json
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
- name: Top level echo
type: Test/Echo
properties:
output: >-
[reference(
resourceId('Microsoft/OSInfo', 'Nested OSInfo')
).actualState]
dependsOn:
- "[resourceId('Microsoft/OSInfo', 'Nested OSInfo')]"
- name: Top level group
type: Microsoft.DSC/Group
properties:
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
- name: Nested OSInfo
type: Microsoft/OSInfo
properties: {}
Beispiel 3: Ungültiger Verweis und Abhängigkeit von einem externen instance
Diese Beispielkonfiguration ist ungültig, da die geschachtelte instance der Test/Echo
Ressource auf verweist und vom instance der obersten Ebene Microsoft/OSInfo
abhängt. Die instance der obersten Ebene befindet sich außerhalb des geschachtelten instance und nicht nebenan.
# yaml-language-server: $schema=https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/bundled/resource/manifest.vscode.json
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
- name: Top level OSInfo
type: Microsoft/OSInfo
properties: {}
- name: Top level group
type: Microsoft.DSC/Group
properties:
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
- name: Nested echo
type: Test/Echo
properties:
output: >-
[reference(
resourceId('Microsoft/OSInfo', 'Top level OSInfo')
).actualState]
dependsOn:
- "[resourceId('Microsoft/OSInfo', 'Top level OSInfo')]"
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