Leggere in inglese

Condividi tramite


Informazioni di riferimento sullo schema delle proprietà di esportazione del manifesto della risorsa DSC

Riepilogo

Definisce come recuperare lo stato corrente di ogni istanza di una risorsa DSC.

Metadati

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

Descrizione

Una risorsa DSC basata su comandi che può enumerare ogni istanza di se stessa con un singolo comando deve definire la export proprietà nel manifesto. Questa proprietà definisce come DSC può ottenere lo stato corrente per ogni istanza di risorsa. Quando questa proprietà è definita, gli utenti possono:

  • Specificare un'istanza della risorsa nella configurazione di input per il comando dsc config export per generare un documento di configurazione utilizzabile.
  • Specificare la risorsa con il comando di esportazione delle risorse dsc per generare un documento di configurazione che definisce ogni istanza della risorsa.
  • Specificare la risorsa con il comando get della risorsa DSC e l'opzione --all per restituire lo stato corrente per ogni istanza della risorsa.

Quando dsc chiama il comando definito da questa proprietà, la risorsa deve restituire lo stato corrente di ogni istanza come righe JSON. Ogni riga JSON deve essere un oggetto che rappresenta l'istanza e convalidare lo schema dell'istanza di risorsa definita.

DSC invia i dati a questo comando in tre modi:

  1. Quando input è stdin, DSC invia i dati come stringa che rappresentano i dati come oggetto JSON compresso senza spazi o nuove righe tra le proprietà dell'oggetto.
  2. Quando input è env, DSC invia i dati come variabili di ambiente. Crea una variabile di ambiente per ogni proprietà nell'oggetto dati di input usando il nome e il valore della proprietà.
  3. Quando la args matrice include una definizione di argomento di input JSON, DSC invia i dati come stringa che rappresentano i dati come oggetto JSON compresso all'argomento specificato.

Se non si definisce la input proprietà e non si definisce un argomento di input JSON, DSC non può passare il codice JSON di input alla risorsa. È possibile definire un solo argomento di input JSON per un comando.

È necessario definire la input proprietà, un argomento di input JSON nella args matrice di proprietà o entrambi.

Proprietà obbligatorie

La export definizione deve includere queste proprietà:

Proprietà

eseguibile

La executable proprietà definisce il nome del comando da eseguire. Il valore deve essere il nome di un comando individuabile nella variabile di ambiente del PATH sistema o nel percorso completo del comando. Un'estensione di file è necessaria solo quando il comando non è riconoscibile dal sistema operativo come eseguibile.

Type:     string
Required: true

args

La args proprietà definisce l'elenco di argomenti da passare al comando. Gli argomenti possono essere qualsiasi numero di stringhe. Se si vuole passare l'oggetto JSON che rappresenta il contenitore di proprietà per la risorsa a un argomento, è possibile definire un singolo elemento nella matrice come oggetto [JSON], che indica il nome dell'argomento con la jsonInputArg proprietà stringa e se l'argomento è obbligatorio per il comando con la mandatory proprietà booleana.

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

Argomenti stringa

Qualsiasi elemento della matrice di argomenti può essere una stringa che rappresenta un argomento statico da passare al comando, ad esempio config o --format.

Type: string

Argomento di input JSON

Definisce un argomento per il comando che accetta l'oggetto di input JSON come stringa. DSC passa l'input JSON all'argomento denominato quando disponibile. Un argomento di input JSON è definito come oggetto JSON con le proprietà seguenti:

  • jsonInputArg (obbligatorio) : l'argomento per passare i dati JSON al comando, ad esempio --input.
  • mandatory (facoltativo) - Indicare se DSC deve sempre passare l'argomento al comando, anche quando non è disponibile alcun input JSON per il comando. In questo caso DSC passa una stringa vuota all'argomento di input JSON.

È possibile definire un solo argomento di input JSON per matrice di argomenti.

Se si definisce un argomento di input JSON e un input tipo per un comando, DSC invia i dati JSON in entrambi i modi:

  • Se si definisce input come env e un argomento di input JSON, DSC imposta una variabile di ambiente per ogni proprietà nell'input JSON e passa l'oggetto di input JSON come stringa all'argomento definito.
  • Se si definisce input come stdin e un argomento di input JSON, DSC passa l'input JSON su stdin e come stringa all'argomento definito.
  • Se si definisce un argomento di input JSON senza definire la input proprietà, DSC passa solo l'input JSON come stringa all'argomento definito.

Se non si definisce la input proprietà e non si definisce un argomento di input JSON, DSC non può passare il codice JSON di input alla risorsa. Ciò rende il manifesto non valido. È necessario definire la input proprietà, un argomento di input JSON nella args matrice di proprietà o entrambi.

Type:                object
RequiredProperties: [jsonInputArg]

input

La input proprietà definisce come passare l'input alla risorsa. Se questa proprietà non è definita e la definizione non definisce un argomento di input JSON, DSC non invia alcun input alla risorsa quando richiama l'operazione export .

Il valore di questa proprietà deve essere una delle stringhe seguenti:

  • env - Indica che la risorsa prevede che le proprietà di un'istanza vengano specificate come variabili di ambiente con gli stessi nomi e maiuscole.

    Questa opzione supporta solo i tipi di dati seguenti per le proprietà dell'istanza:

    • boolean
    • integer
    • number
    • string
    • array di integer valori
    • array di number valori
    • array di string valori

    Per i valori non di matrice, DSC imposta la variabile di ambiente sul valore specificato come è. Quando il tipo di dati è una matrice di valori, DSC imposta la variabile di ambiente come stringa delimitata da virgole. Ad esempio, la proprietà foo con un valore di viene salvata nella foo variabile di [1, 2, 3] ambiente come "1,2,3".

    Se la risorsa deve supportare proprietà complesse con un object valore o matrici multitipo, impostare questa opzione su stdin .

  • stdin - Indica che la risorsa prevede un BLOB JSON che rappresenta un'istanza da stdin. Il codice JSON deve rispettare lo schema dell'istanza per la risorsa.

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