概要
定义 DSC 配置的 YAML 或 JSON 文件。
元数据
SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/config/document.json
Type: object
DESCRIPTION
DSC 配置使用户能够通过组合不同的 DSC 资源来定义状态。 配置文档使用参数和变量传递给定义所需状态的一个或多个资源集。
配置文档可以定义为 YAML 或 JSON。 为了便于创作,Microsoft 建议在 YAML 中起草配置文档。
要使 DSC 的创作工具将文件识别为 DSC 配置文档,文件名必须以下列之一结尾:
.dsc.config.json.dsc.config.yml-
.dsc.config.yaml。 .dsc.json.dsc.yml.dsc.yaml
您可以使用配置文档函数在运行时动态确定文档中的值。 有关更多信息,请参阅 DSC 配置文档函数参考
本文档的其余部分介绍了 DSC 用于验证配置文档的架构。
例子
必需属性
每个配置文档都必须包含以下属性:
属性
$schema
该 $schema 属性指示解析为文档所遵循的此架构版本的 URI。 DSC 在验证和处理配置文档时使用此属性。
DSC 的 JSON 架构以多个版本和形式发布。 本文档适用于最新版本的架构。 为方便起见,您可以为 GitHub 中托管的架构指定完整的 URI,也可以使用较短 aka.ms 的 URI。 您可以为特定语义版本指定 Schema,为次要版本指定 latest Schema,或者为 DSC 的主要版本指定 latest Schema。 有关架构 URI 和版本控制的更多信息,请参阅 DSC JSON 架构 URI。
对于架构的每个版本,都有三个有效的 URL:
.../config/document.json规范非捆绑架构的 URL。 用于验证时,验证客户端需要检索此架构及其引用的每个架构。
.../bundled/config/document.json规范捆绑架构的 URL。 当它用于验证时,验证客户端只需要检索此架构。
此架构使用为 JSON 架构 2020-12 引入的捆绑模型。 虽然 DSC 在使用此架构时仍可以验证文档,但如果其他工具不完全支持 2020-12 规范,则它们可能会出错或以意外方式运行。
.../bundled/config/document.vscode.json增强创作架构的 URL。 此架构比其他架构大得多,因为它包括其他架构,这些定义提供其他架构不包含的上下文帮助和代码片段。
此架构使用仅由 VS Code 识别的关键字。 虽然 DSC 在使用此架构时仍可以验证文档,但其他工具可能会出错或以意外方式运行。
Type: string
Required: true
Format: URI
ValidValues: [
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/bundled/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/bundled/config/document.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/bundled/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/bundled/config/document.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/bundled/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/bundled/config/document.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0/bundled/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0/bundled/config/document.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.2/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.2/bundled/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.2/bundled/config/document.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.1/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.1/bundled/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.1/bundled/config/document.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.0/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.0/bundled/config/document.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.0/bundled/config/document.vscode.json
https://aka.ms/dsc/schemas/v3/config/document.json
https://aka.ms/dsc/schemas/v3/bundled/config/document.json
https://aka.ms/dsc/schemas/v3/bundled/config/document.vscode.json
https://aka.ms/dsc/schemas/v3.1/config/document.json
https://aka.ms/dsc/schemas/v3.1/bundled/config/document.json
https://aka.ms/dsc/schemas/v3.1/bundled/config/document.vscode.json
https://aka.ms/dsc/schemas/v3.1.0/config/document.json
https://aka.ms/dsc/schemas/v3.1.0/bundled/config/document.json
https://aka.ms/dsc/schemas/v3.1.0/bundled/config/document.vscode.json
https://aka.ms/dsc/schemas/v3.0/config/document.json
https://aka.ms/dsc/schemas/v3.0/bundled/config/document.json
https://aka.ms/dsc/schemas/v3.0/bundled/config/document.vscode.json
https://aka.ms/dsc/schemas/v3.0.2/config/document.json
https://aka.ms/dsc/schemas/v3.0.2/bundled/config/document.json
https://aka.ms/dsc/schemas/v3.0.2/bundled/config/document.vscode.json
https://aka.ms/dsc/schemas/v3.0.1/config/document.json
https://aka.ms/dsc/schemas/v3.0.1/bundled/config/document.json
https://aka.ms/dsc/schemas/v3.0.1/bundled/config/document.vscode.json
https://aka.ms/dsc/schemas/v3.0.0/config/document.json
https://aka.ms/dsc/schemas/v3.0.0/bundled/config/document.json
https://aka.ms/dsc/schemas/v3.0.0/bundled/config/document.vscode.json
]
元数据
该 metadata 属性定义一组键值对作为配置的注释。 DSC 不验证元数据。 配置可以在此属性中包含任意信息。
Type: object
Required: false
参数
该 parameters 属性为配置定义一组运行时选项。 每个参数都定义为键值对。 每对的键定义参数的名称。 每对的值必须是一个对象,该对象定义 type 关键字以指示 DSC 应如何处理参数。
参数可以在运行时被覆盖,从而可以在不同的上下文中重用相同的配置文档。
有关在配置中定义参数的更多信息,请参阅 DSC 配置文档参数架构。
Type: object
Required: false
ValidPropertySchema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.0/config/document.parameter.json
变量
该 variables 属性将文档中资源的一组可重用值定义为键值对。 每对的键定义变量的名称。 按名称引用变量的资源可以访问变量的值。
这有助于减少配置中资源的复制值和选项的数量,从而使文档更易于阅读和维护。 与参数不同,变量只能在配置中定义,不能在运行时覆盖。
Type: object
Required: false
资源
该 resources 属性定义配置管理的 DSC 资源实例列表。
列表中的每个实例都必须是唯一的,但实例可以共享相同的 DSC 资源类型。
有关在配置中定义有效资源实例的更多信息,请参阅 DSC 配置文档资源架构。
Type: array
Required: true
MinimumItemCount: 1
ValidItemSchema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.0/config/document.resource.json