Compartilhar via


Referência da propriedade de esquema do manifesto do recurso DSC

Sinopse

Define como recuperar o esquema JSON que valida uma instância de recurso DSC.

Metadados

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

Descrição

Cada recurso DSC baseado em comando deve definir a schema propriedade em seu manifesto. Essa propriedade define como a DSC pode obter o esquema JSON necessário para validar instâncias do recurso.

O esquema JSON pode ser definido dinamicamente com a propriedade command ou estaticamente com a propriedade inserida .

Para fins de desenvolvimento, pode ser mais conveniente usar a command propriedade e evitar a necessidade de ajustar o código e o esquema.

A Microsoft recomenda usar a embedded propriedade ao publicar um recurso publicamente. Quando o manifesto declara o esquema com a propriedade , o command DSC chama o comando no início de qualquer operação usando o recurso, possivelmente afetando o desempenho. O esquema também não está disponível para integrar ferramentas quando o recurso não está instalado localmente. Quando o esquema é inserido no manifesto, o DSC e as ferramentas de integração só precisam do manifesto em si.

Exemplos

Exemplo 1 – Obter esquema JSON com um comando

Este exemplo é do Microsoft.Windows/Registry recurso DSC.

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

Com a propriedade definida, o command DSC obtém o esquema JSON para validar instâncias desse recurso com o seguinte comando:

registry schema

Exemplo 2 – Esquema JSON inserido

Este exemplo é do Microsoft/OSInfo recurso DSC. Ele define um esquema JSON inserido que o DSC usa para validar uma instância do recurso.

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

Propriedades obrigatórias

A schema definição deve incluir exatamente uma destas propriedades:

Propriedades

.

A command propriedade define como a DSC deve chamar o recurso para obter o esquema JSON que valida suas instâncias. O valor dessa propriedade deve ser um objeto e definir a executable propriedade .

Ao publicar um manifesto com a propriedade , a command Microsoft recomenda publicar o esquema JSON em um URI disponível publicamente e definir a url propriedade para esse URI. Isso permite que ferramentas de criação e outros aplicativos de integração validem instâncias sem executar o comando localmente.

Type:               object
RequiredProperties: [executable]

executável

A executable propriedade define o nome do comando a ser executado. O valor deve ser o nome de um comando detectável na variável de ambiente do PATH sistema ou o caminho completo para o comando. Uma extensão de arquivo só é necessária quando o comando não é reconhecível pelo sistema operacional como um executável.

Type:     string
Required: true

args

A args propriedade define uma matriz de cadeias de caracteres a serem passadas como argumentos para o comando . A DSC passa os argumentos para o comando na ordem em que são especificados.

Type:     array
Required: false
Default:  []

incorporado

A embedded propriedade define o esquema JSON completo para dsc para validar instâncias do recurso DSC. O valor dessa propriedade deve ser um esquema JSON válido que define as $schemapalavras-chave , typee properties .

Type:                 object
MinimumPropertyCount: 1

url

A url propriedade define a URL para o esquema JSON publicado do recurso. Ele é usado pela integração de ferramentas para recursos que definem a command propriedade em vez da embedded propriedade .

Type:   string
Format: uri