Partilhar via


Referência de esquema de propriedade de resolução de manifesto de recurso DSC

Sinopse

Indica como chamar o recurso para resolver um documento de configuração aninhado de uma fonte externa.

Metadados

SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID:      https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/resource/manifest.resolve.json
Type:          object

Descrição

Define como o DSC deve chamar o recurso DSC para resolver uma fonte externa para o documento de configuração DSC aninhado. Defina esse método para de recursos do importador e defina o tipo propriedade na raiz do manifesto como Import.

O DSC envia dados para o comando de três maneiras:

  1. Quando input é stdin, o DSC envia os dados como uma cadeia de caracteres que representa os dados como um objeto JSON compactado sem espaços ou novas linhas entre as propriedades do objeto.
  2. Quando input é env, o DSC envia os dados como variáveis de ambiente. Ele cria uma variável de ambiente para cada propriedade no objeto de dados de entrada, usando o nome e o valor da propriedade.
  3. Quando a matriz args inclui uma definição de argumento de entrada JSON, o DSC envia os dados como uma cadeia de caracteres que representa os dados como um objeto JSON compactado para o argumento especificado.

Se você não definir a propriedade input e não definir um argumento de entrada JSON, o DSC não poderá passar o JSON de entrada para o recurso. Você só pode definir um argumento de entrada JSON para um comando.

Você deve definir a propriedade input, um argumento de entrada JSON na matriz de propriedades args ou ambos.

Propriedades necessárias

A definição de resolve deve incluir estas propriedades:

  • executável

Propriedades

executável

A propriedade executable define o nome do comando a ser executado. O valor deve ser o nome de um comando detetável na variável de ambiente PATH do 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 propriedade args define a lista de argumentos a serem passados para o comando. Os argumentos podem ser qualquer número de strings. Se desejar passar o objeto JSON que representa o conjunto de propriedades do recurso para um argumento, você pode definir um único item na matriz como um [objeto JSON], indicando o nome do argumento com a propriedade string jsonInputArg e se o argumento é obrigatório para o comando com a propriedade booleana mandatory.

Type:     array
Required: false
Default:  []
Type:     [string, object(JSON Input Argument)]

Argumentos de cadeia de caracteres

Qualquer item na matriz de argumentos pode ser uma cadeia de caracteres 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 de caracteres. O DSC passa a entrada JSON para o argumento nomeado quando disponível. Um argumento de entrada JSON é definido como um objeto JSON com as seguintes propriedades:

  • jsonInputArg (obrigatório) - o argumento para passar os dados JSON para o comando, como --input.
  • mandatory (opcional) - Indique se o DSC deve sempre passar o argumento para o comando, mesmo quando não há entrada JSON para o comando. Nesse caso, o DSC passa uma cadeia de caracteres vazia para o argumento de entrada JSON.

Você só pode definir um argumento de entrada JSON por matriz de argumentos.

Se você definir um argumento de entrada JSON e um tipo de input para um comando, o DSC enviará os dados JSON de ambas as maneiras:

  • Se você definir input como env e um argumento de entrada JSON, o DSC definirá uma variável de ambiente para cada propriedade na entrada JSON e passará o objeto de entrada JSON como uma cadeia de caracteres para o argumento definido.
  • Se você definir input como stdin e um argumento de entrada JSON, o DSC passará a entrada JSON sobre stdin e como uma cadeia de caracteres para o argumento definido.
  • Se você definir um argumento de entrada JSON sem definir a propriedade input, o DSC passará apenas a entrada JSON como uma cadeia de caracteres para o argumento definido.

Se você não definir a propriedade input e não definir um argumento de entrada JSON, o DSC não poderá passar o JSON de entrada para o recurso. Isso torna o manifesto inválido. Você deve definir a propriedade input, um argumento de entrada JSON na matriz de propriedades args ou ambos.

Type:                object
RequiredProperties: [jsonInputArg]

entrada

A propriedade input define como passar a entrada para o recurso. Se essa propriedade não estiver definida e a definição não definir um argumento de entrada JSON, o DSC não enviará nenhuma entrada para o recurso ao invocar a operação resolve.

O valor dessa propriedade deve ser uma das seguintes cadeias de caracteres:

  • 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 invólucro.

    Esta opção suporta apenas os seguintes tipos de dados para propriedades de exemplo:

    • boolean
    • integer
    • number
    • string
    • array de valores de integer
    • array de valores de number
    • array de valores de string

    Para valores que não sejam de matriz, o DSC define a variável de ambiente como o valor especificado as-is. Quando o tipo de dados é uma matriz de valores, o DSC define a variável de ambiente como uma cadeia de caracteres delimitada por vírgula. Por exemplo, a propriedade foo com um valor de [1, 2, 3] é salva na variável de ambiente foo como "1,2,3".

    Se o recurso precisar oferecer suporte a propriedades complexas com um valor object ou matrizes de vários tipos, defina isso como stdin em vez disso.

  • stdin - Indica que o recurso espera um blob JSON representando uma instância de stdin. O JSON deve aderir ao esquema de instância para o recurso.

Type:        string
Required:    false
ValidValues: [env, stdin]