Dela via


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:

  1. När input är stdinskickar DSC data som en sträng som representerar data som ett komprimerat JSON-objekt utan blanksteg eller nya radlinjer mellan objektegenskaperna.
  2. När input är envskickar 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.
  3. 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 som env 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 som stdin 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 av integer värden
    • array av number värden
    • array av string 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övariabeln foo 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 till stdin i stället.

  • stdin – Anger att resursen förväntar sig en JSON-blob som representerar en instans från stdin. JSON måste följa instansschemat för resursen.

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