DSC 资源清单适配器属性架构参考

摘要

将 DSC 资源定义为 DSC 资源适配器。

元数据

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

描述

DSC 资源适配器必须在其清单中定义 adapter 属性。 此属性将资源标识为适配器,并定义 DSC 如何调用适配器以获取适配器支持的资源以及如何将资源实例传递给适配器。

示例

示例 1 - Microsoft.DSC/PowerShell

此示例来自 Microsoft.DSC/PowerShell DSC 资源适配器。

"adapter": {
  "list": {
    "executable": "pwsh",
    "args": [
      "-NoLogo",
      "-NonInteractive",
      "-NoProfile",
      "-Command",
      "./powershell.resource.ps1 List"
    ]
    },
  "config": "full"
},

清单将 设置为 configfull,指示适配器需要一个 JSON blob,该 blob 表示来自 stdin的完整和未处理的配置。

它定义为 list.executablepwsh。 中 list.args 定义的参数确保 DSC 运行 PowerShell:

  • 没有徽标横幅
  • 在非交互模式下
  • 不加载任何配置文件脚本
  • 调用 powershell.resource.ps1 与 命令相同的文件夹中的 dsc 脚本并传递 List 参数。

使用此定义,DSC 通过运行以下命令为此适配器调用 list 方法:

pwsh -NoLogo -NonInteractive -NoProfile -Command "./powershellgroup.resource.ps1 List"

必需属性

定义 adapter 必须包含以下属性:

属性

config

属性 config 定义适配器预期如何接收资源配置。 该值必须是以下选项之一:

  • full - 指示适配器需要包含完整配置和未处理配置的 JSON Blob,作为基于 stdin的单个 JSON Blob。
  • sequence- 指示适配器需要每个资源的配置作为上的 stdinJSON 行
Type:        string
ValidValues: [full, sequence]

list

属性 list 定义如何调用适配器以列出它支持的资源。 此属性的值必须是 对象并定义 executable 子属性。

Type:               object
Required:           true
RequiredProperties: [executable]

可执行文件

executable 属性定义要运行的命令的名称。 该值必须是可在系统的 PATH 环境变量中发现的命令的名称或命令的完整路径。 仅当操作系统无法将命令识别为可执行文件时,才需要文件扩展名。

Type:     string
Required: true

args

args 属性定义要作为参数传递给命令的字符串数组。 DSC 按指定的顺序将参数传递给命令。

Type:     array
Required: false
Default:  []