Partilhar via


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

Sinopse

Define como obter o Esquema JSON que valida uma instância de Recurso do 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

Todos os Recursos DSC baseados em comandos têm de definir a schema propriedade no respetivo manifesto. Esta propriedade define como o DSC pode obter o esquema JSON de que precisa para validar instâncias do recurso.

O esquema JSON pode ser definido dinamicamente com a propriedade de comando ou estaticamente com a propriedade incorporada .

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

A Microsoft recomenda a utilização da propriedade ao embedded 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 com 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 é incorporado no manifesto, o DSC e as ferramentas de integração só precisam do próprio manifesto.

Exemplos

Exemplo 1 - Obter o esquema JSON com um comando

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

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

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

registry schema

Exemplo 2 - Esquema JSON incorporado

Este exemplo é do Recurso do Microsoft/OSInfo DSC. Define um esquema JSON incorporado que o DSC utiliza 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 Necessárias

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

Propriedades

command

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

Ao publicar um manifesto com a propriedade, a command Microsoft recomenda a publicação do esquema JSON num URI publicamente disponível e a definição da url propriedade para esse URI. Isto permite que as ferramentas de criação e outras aplicações integradas validem instâncias sem executar o comando localmente.

Type:               object
RequiredProperties: [executable]

executável

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

Type:     string
Required: true

args

A args propriedade define uma matriz de cadeias para transmitir como argumentos para o comando. O DSC transmite os argumentos para o comando pela ordem em que são especificados.

Type:     array
Required: false
Default:  []

incorporada

A embedded propriedade define o esquema JSON completo para DSC para validar instâncias do Recurso DSC. O valor desta propriedade tem de ser um esquema JSON válido que defina as $schemapalavras-chave , typee properties .

Type:                 object
MinimumPropertyCount: 1

url

A url propriedade define o URL para o esquema JSON publicado do recurso. É utilizado ao integrar ferramentas para recursos que definem a command propriedade em vez da embedded propriedade.

Type:   string
Format: uri