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 $schema
palavras-chave , type
e 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