Referência do esquema de propriedade do conjunto de manifestos de recursos do DSC
Sinopse
Define como impor o estado para 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.set.json
Type: object
Description
Para gerir uma instância com o DSC, um Recurso do DSC tem de definir a set
propriedade no respetivo manifesto. Esta propriedade define como o DSC pode impor o estado atual de uma instância.
Quando esta propriedade não está definida, o DSC só pode obter o estado atual das instâncias e testar se estão no estado pretendido. O DSC não consegue impor o estado pretendido para o recurso.
O DSC envia dados para o comando de três formas:
- Quando
input
éstdin
, o DSC envia os dados como uma cadeia que representa os dados como um objeto JSON comprimido sem espaços ou novas linhas entre as propriedades do objeto. - Quando
input
éenv
, o DSC envia os dados como variáveis de ambiente. Cria uma variável de ambiente para cada propriedade no objeto de dados de entrada, utilizando o nome e o valor da propriedade. - Quando a
args
matriz inclui uma definição de argumento de entrada JSON, o DSC envia os dados como uma cadeia que representa os dados como um objeto JSON comprimido para o argumento especificado.
Se não definir a input
propriedade e não definir um argumento de entrada JSON, o DSC não poderá transmitir o JSON de entrada para o recurso. Só pode definir um argumento de entrada JSON para um comando.
Tem de definir a input
propriedade, um argumento de entrada JSON na matriz de args
propriedades ou ambos.
Exemplos
Exemplo 1 - Definição completa
Este exemplo é do Recurso do Microsoft.Windows/Registry
DSC.
"set": {
"executable": "registry",
"args": [
"config",
"set"
],
"input": "stdin",
"implementsPretest": true,
"return": "state"
}
Define executable
como registry
, em vez de registry.exe
. A extensão não é necessária quando o sistema operativo reconhece o comando como um executável.
O manifesto define dois argumentos config
e set
. O valor da input
propriedade indica que o comando espera a set
respetiva entrada como um blob JSON de stdin
.
Combinado com o valor para executable
, o DSC chama o método set para este recurso ao executar:
{ ... } | registry config set
Uma vez que o manifesto define implementsPretest
como true
, o DSC não chamará o test
método do recurso antes de chamar set
. Esta definição indica que o próprio recurso testa instâncias antes de impor o estado pretendido.
O manifesto define return
como state
, indicando que só devolve o estado final do recurso após a execução do set
método. O DSC compara o estado pretendido com os dados devolvidos deste recurso para identificar quais das propriedades do recurso o set
método imposto, se existirem.
Propriedades Necessárias
A set
definição tem de incluir estas propriedades:
Propriedades
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 a lista de argumentos a transmitir para o comando . Os argumentos podem ser qualquer número de cadeias. Se quiser transmitir o objeto JSON que representa o saco de propriedades do recurso para um argumento, pode definir um único item na matriz como um [objeto JSON], indicando o nome do argumento com a jsonInputArg
propriedade de cadeia e se o argumento é obrigatório para o comando com a mandatory
propriedade booleana.
Type: array
Required: false
Default: []
Type: [string, object(JSON Input Argument)]
Argumentos de cadeia
Qualquer item na matriz de argumentos pode ser uma cadeia que representa um argumento estático para passar para o comando, como config
ou --format
.
Type: string
Argumento de entrada JSON
Define um argumento para o comando que aceita o objeto de entrada JSON como uma cadeia. O DSC transmite a entrada JSON para o argumento com nome quando disponível. Um argumento de entrada JSON é definido como um objeto JSON com as seguintes propriedades:
jsonInputArg
(obrigatório) – o argumento para transmitir os dados JSON para para o comando, como--input
.mandatory
(opcional) - Indique se o DSC deve passar sempre o argumento para o comando, mesmo quando não existe nenhuma entrada JSON para o comando. Nesse caso, o DSC transmite uma cadeia vazia ao argumento de entrada JSON.
Só pode definir um argumento de entrada JSON por matriz de argumentos.
Se definir um argumento de entrada JSON e um input
tipo para um comando, o DSC envia os dados JSON de ambas as formas:
- Se definir
input
comoenv
e um argumento de entrada JSON, o DSC define uma variável de ambiente para cada propriedade na entrada JSON e transmite o objeto de entrada JSON como uma cadeia para o argumento definido. - Se definir
input
comostdin
e um argumento de entrada JSON, o DSC transmite a entrada JSON sobre stdin e como uma cadeia para o argumento definido. - Se definir um argumento de entrada JSON sem definir a propriedade, o
input
DSC só transmite a entrada JSON como uma cadeia para o argumento definido.
Se não definir a input
propriedade e não definir um argumento de entrada JSON, o DSC não poderá transmitir o JSON de entrada para o recurso. Isto torna o manifesto inválido. Tem de definir a input
propriedade, um argumento de entrada JSON na matriz de args
propriedades ou ambos.
Type: object
RequiredProperties: [jsonInputArg]
entrada
A input
propriedade define como transmitir entradas para o recurso. Se esta propriedade não estiver definida e a definição não definir um argumento de entrada JSON, o DSC não envia nenhuma entrada para o recurso ao invocar a set
operação.
O valor desta propriedade tem de ser uma das seguintes cadeias:
env
- Indica que o recurso espera que as propriedades de uma instância sejam especificadas como variáveis de ambiente com os mesmos nomes e maições.Esta opção suporta apenas os seguintes tipos de dados para propriedades de instância:
boolean
integer
number
string
array
deinteger
valoresarray
denumber
valoresarray
destring
valores
Para valores que não sejam de matriz, o DSC define a variável de ambiente para o valor especificado tal como está. Quando o tipo de dados é uma matriz de valores, o DSC define a variável de ambiente como uma cadeia delimitada por vírgulas. Por exemplo, a propriedade
foo
com um valor de[1, 2, 3]
é guardada na variável defoo
ambiente como"1,2,3"
.Se o recurso precisar de suportar propriedades complexas com um
object
valor ou matrizes de vários tipos, defina esta opção comostdin
.stdin
- Indica que o recurso espera um blob JSON que representa uma instância destdin
. O JSON tem de cumprir o esquema da instância do recurso.
Type: string
Required: false
ValidValues: [env, stdin]
implementsPretest
A implementsPretest
propriedade define se o recurso testa se a instância está no estado pretendido internamente antes de impor o estado pretendido. Defina esta propriedade como true
quando o recurso testar a instância como parte da set
operação. Defina esta propriedade como false
quando não o faz.
Quando este valor é false
, indica que os utilizadores devem sempre chamar dsc resource test
contra a instância antes de invocar o dsc resource set
comando contra o recurso.
O valor predefinido é false
.
Type: boolean
Required: false
Default: false
handlesExist
A handlesExist
propriedade define se o recurso tem processamento incorporado para a propriedade _exist na set
operação. O valor predefinido é false
.
Defina esta propriedade para true
quando o recurso cumprir os seguintes requisitos de implementação:
- O esquema de instância do recurso define a
_exist
propriedade como uma propriedade de instância válida. - O comando do
set
recurso processa a criação, atualização e eliminação de uma instância com base no estado atual da instância e no valor da_exist
propriedade no estado pretendido.
Quando esta propriedade está definida como true
, o recurso indica que tem a capacidadeSetHandlesExist. Ao processar recursos com a SetHandlesExist
capacidade numa configuração, o DSC chama a set
operação para o recurso quando uma instância define _exist
como false
. Sem esta capacidade, um recurso tem de definir a operação de eliminação para suportar a remoção de instâncias do recurso.
Se um manifesto de recurso não definir esta propriedade como true
e não definir a operação, o delete
DSC gera um erro quando encontra uma instância do recurso com _exist
definido como false
.
regressar
A return
propriedade define como o DSC deve processar a saída para este método. O valor desta propriedade tem de ser uma das seguintes cadeias:
state
- Indica que o recurso devolve apenas o estado final da instância após a operação definida como um blob JSON.stateAndDiff
- Indica que o recurso devolve o estado final da instância e uma matriz de nomes de propriedade que o recurso modificou.
O valor predefinido é state
.
Type: string
Required: false
Default: state
ValidValues: [state, stateAndDiff]
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários