Referens för DSC-resursmanifest för att lösa egenskapsschema
Sammanfattning
Anger hur du anropar resursen för att lösa ett kapslat konfigurationsdokument från en extern källa.
Metadata
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
Beskrivning
Definierar hur DSC måste anropa DSC-resursen för att matcha en extern källa till det kapslade DSC-konfigurationsdokumentet. Definiera den här metoden för importerresurser och ange egenskapen typ i manifestroten till Import
.
DSC skickar data till kommandot på tre sätt:
- När
input
ärstdin
skickar DSC data som en sträng som representerar data som ett komprimerat JSON-objekt utan blanksteg eller nya radlinjer mellan objektegenskaperna. - När
input
ärenv
skickar DSC data som miljövariabler. Den skapar en miljövariabel för varje egenskap i indataobjektet med hjälp av egenskapens namn och värde. - När den
args
matrisen innehåller en JSON-indataargumentdefinition skickar DSC data som en sträng som representerar data som ett komprimerat JSON-objekt till det angivna argumentet.
Om du inte definierar egenskapen input
och inte definierar ett JSON-indataargument kan DSC inte skicka indata-JSON till resursen. Du kan bara definiera ett JSON-indataargument för ett kommando.
Du måste definiera egenskapen input
, ett JSON-indataargument i args
-egenskapsmatrisen eller båda.
Nödvändiga egenskaper
Definitionen resolve
måste innehålla följande egenskaper:
Egenskaper
genomförbar
Egenskapen executable
definierar namnet på kommandot som ska köras. Värdet måste vara namnet på ett kommando som kan identifieras i systemets PATH
miljövariabel eller den fullständiga sökvägen till kommandot. Ett filnamnstillägg krävs bara när kommandot inte kan identifieras av operativsystemet som en körbar fil.
Type: string
Required: true
args
Egenskapen args
definierar listan med argument som ska skickas till kommandot. Argumenten kan vara valfritt antal strängar. Om du vill skicka JSON-objektet som representerar egenskapspåsen för resursen till ett argument kan du definiera ett enskilt objekt i matrisen som ett [JSON-objekt], som anger namnet på argumentet med egenskapen jsonInputArg
sträng och om argumentet är obligatoriskt för kommandot med egenskapen mandatory
booleskt värde.
Type: array
Required: false
Default: []
Type: [string, object(JSON Input Argument)]
Strängargument
Alla objekt i argumentmatrisen kan vara en sträng som representerar ett statiskt argument som ska skickas till kommandot, till exempel config
eller --format
.
Type: string
JSON-indataargument
Definierar ett argument för kommandot som accepterar JSON-indataobjektet som en sträng. DSC skickar JSON-indata till det namngivna argumentet när det är tillgängligt. Ett JSON-indataargument definieras som ett JSON-objekt med följande egenskaper:
jsonInputArg
(krävs) – argumentet för att skicka JSON-data till för kommandot, till exempel--input
.mandatory
(valfritt) – Anger om DSC alltid ska skicka argumentet till kommandot, även om det inte finns några JSON-indata för kommandot. I så fall skickar DSC en tom sträng till JSON-indataargumentet.
Du kan bara definiera ett JSON-indataargument per argumentmatris.
Om du definierar ett JSON-indataargument och en input
typ för ett kommando skickar DSC JSON-data åt båda hållen:
- Om du definierar
input
somenv
och ett JSON-indataargument anger DSC en miljövariabel för varje egenskap i JSON-indata och skickar JSON-indataobjektet som en sträng till det definierade argumentet. - Om du definierar
input
somstdin
och ett JSON-indataargument skickar DSC JSON-indata över stdin och som en sträng till det definierade argumentet. - Om du definierar ett JSON-indataargument utan att definiera egenskapen
input
skickar DSC endast JSON-indata som en sträng till det definierade argumentet.
Om du inte definierar egenskapen input
och inte definierar ett JSON-indataargument kan DSC inte skicka indata-JSON till resursen. Detta gör manifestet ogiltigt. Du måste definiera egenskapen input
, ett JSON-indataargument i args
egenskapsmatris eller båda.
Type: object
RequiredProperties: [jsonInputArg]
inmatning
Egenskapen input
definierar hur du skickar indata till resursen. Om den här egenskapen inte har definierats och definitionen inte definierar ett JSON-indataargumentskickar DSC inga indata till resursen när resolve
-åtgärden anropas.
Värdet för den här egenskapen måste vara en av följande strängar:
env
– Anger att resursen förväntar sig att egenskaperna för en instans anges som miljövariabler med samma namn och hölje.Det här alternativet stöder endast följande datatyper för instansegenskaper:
boolean
integer
number
string
array
avinteger
värdenarray
avnumber
värdenarray
avstring
värden
För värden som inte är matrisvärden anger DSC miljövariabeln till det angivna värdet as-is. När datatypen är en matris med värden anger DSC miljövariabeln som en kommaavgränsad sträng. Egenskapen
foo
med värdet[1, 2, 3]
sparas till exempel i miljövariabelnfoo
som"1,2,3"
.Om resursen behöver stöd för komplexa egenskaper med ett
object
värde eller matriser av flera typer anger du detta tillstdin
i stället.stdin
– Anger att resursen förväntar sig en JSON-blob som representerar en instans frånstdin
. JSON måste följa instansschemat för resursen.
Type: string
Required: false
ValidValues: [env, stdin]