View a markdown version of this page

Utilizzate le variabili dinamiche nel documento del flusso di lavoro - EC2 Image Builder

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzate le variabili dinamiche nel documento del flusso di lavoro

È possibile utilizzare variabili dinamiche nei documenti del flusso di lavoro per rappresentare valori che variano in fase di esecuzione per il processo di creazione dell'immagine. L'interpolazione delle stringhe per le variabili dinamiche consente di incorporare espressioni JSONPath all'interno di contenuti strutturati come le stringhe JSON. Ciò è particolarmente utile quando è necessario passare valori di runtime all'interno di payload complessi ad azioni step come o. ExecuteStateMachine WaitForAction

Per utilizzare l'interpolazione di stringhe per le variabili dinamiche, racchiudi le espressioni JSONPath tra doppie parentesi graffe all'interno del contenuto della stringa. "{{...}}" Solo le espressioni JSONPath racchiuse tra parentesi graffe doppie vengono elaborate come variabili. Tutte le espressioni JSONPath non racchiuse tra doppie parentesi graffe vengono trattate come contenuto di stringa letterale.

Sintassi della variabile del flusso di lavoro dinamico JSONPath

$.<document structure>.[<step name>.]<variable name>

I valori delle variabili dinamiche sono rappresentati come selettori JSONPath con nodi strutturali che identificano in modo univoco la variabile di destinazione. Il primo nodo dopo la radice ($) si riferisce alla struttura del documento del flusso di lavoro, ad esempio ostepOutputs, nel caso delle variabili di sistema di Image Builder,. imageBuilder L'elenco seguente contiene i nodi della struttura dei documenti del flusso di lavoro JSONPath supportati.

Nodi della struttura del documento
  • parametri: i parametri del flusso di lavoro

  • StepOutputs - Risultati di una fase dello stesso documento del flusso di lavoro

  • WorkflowOutputs: output di un documento del flusso di lavoro già eseguito

  • imagebuilder - Variabili di sistema di Image Builder

I nodi della struttura stepOutputs del documento parameters e includono un nodo opzionale per il nome del passaggio. Questo aiuta a garantire nomi di variabili univoci in tutti i passaggi.

Il nodo finale in JSONPath è il nome della variabile di destinazione, ad esempio. instanceId

Ogni passaggio può fare riferimento all'output di qualsiasi azione precedente con queste variabili dinamiche JSONPath. Questo è anche noto come concatenamento o riferimento. Per fare riferimento all'output di un'azione precedente, è possibile utilizzare la seguente variabile dinamica.

$.stepOutputs.step-name.output-name
Importante

Quando un parametro di input si riferisce a una variabile dinamica, l'indicatore di concatenamento (.$) deve essere collegato alla fine del nome del parametro.

Esempio 1: indicatore di concatenamento dei parametri di input

L'esempio seguente mostra un parametro di input che utilizza l'interpolazione di stringhe per risolvere una variabile dinamica nel valore del parametro in fase di esecuzione.

- name: ApplyTestComponents action: ExecuteComponents onFailure: Abort inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"

Esempio 2: interpolazione di stringhe in variabili dinamiche

L'esempio seguente dimostra come le variabili dinamiche utilizzano l'interpolazione di stringhe per determinare i valori in fase di esecuzione.

- name: ValidateImageConfiguration action: ExecuteStateMachine inputs: stateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:ImageValidation input: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-east-1", "buildDate": "{{ $.imagebuilder.dateTime }}", "instanceType": "{{ $.stepOutputs.LaunchStep.instanceType }}" }

In questo esempio, le espressioni JSONPath racchiuse tra doppie parentesi graffe vengono risolte in fase di esecuzione:

  • {{ $.stepOutputs.CreateImageFromInstance.imageId }}- Si risolve nell'ID effettivo dell'immagine indicato nella fase CreateImageFromInstance

  • {{ $.imagebuilder.dateTime }}- Si risolve nel timestamp di compilazione corrente. Consulta Usa le variabili di sistema di Image Builder l'elenco delle variabili di sistema di Image Builder che puoi usare.

  • {{ $.stepOutputs.LaunchStep.instanceType }}- Si risolve nel tipo di istanza utilizzato in LaunchStep

Le stringhe letterali like rimangono invariate. "region": "us-east-1"

Nota

L'interpolazione delle stringhe funziona con qualsiasi contenuto di stringa nel documento del flusso di lavoro, comprese le stringhe multilinea che utilizzano l'operatore YAML pipe (). | Il requisito delle parentesi graffe funge da meccanismo di escape per distinguere chiaramente tra variabili JSONPath e contenuto di testo letterale.

Usa le variabili di sistema di Image Builder

Image Builder fornisce le seguenti variabili di sistema che è possibile utilizzare nel documento del flusso di lavoro. Si tratta di valori di sola lettura che Image Builder compila in fase di esecuzione. Ad esempio, si fa riferimento a una variabile di sistema con il nodo della struttura del imagebuilder documento. $.imagebuilder.platform

Nome della variabile

Description

Tipo

Valore di esempio

cloud WatchLogGroup

Il nome del gruppo CloudWatch Logs per i log di output.

Formato: /aws/imagebuilder/<recipe-name>

Stringa

/aws/imagebuilder/sampleImageRecipe

cloud WatchLogStream

Il nome del flusso CloudWatch Logs per i log di output.

Stringa

1.0.0/1

raccogliere ImageMetadata

L'impostazione che indica a Image Builder se raccogliere i metadati delle istanze.

Booleano

true | false

raccogli ImageScanFindings

Il valore corrente dell'impostazione che consente a Image Builder di raccogliere i risultati della scansione delle immagini.

Booleano

true | false

immagine BuildNumber

Il numero della versione di build dell'immagine.

Numero intero

1

imageId

L'ID AMI dell'immagine di base.

Stringa

ami-1234567890abcdef1

Nome dell'immagine

Il nome dell'immagine.

Stringa

sampleImage

imageType

Il tipo di output dell'immagine.

Stringa

AMI | Docker

immagine VersionNumber

Il numero di versione dell'immagine.

Stringa

1.0.0

istanza ProfileName

Il nome del ruolo del profilo dell'istanza utilizzato da Image Builder per avviare le istanze di compilazione e test.

Stringa

SampleImageBuilderInstanceProfileRole

platform

La piattaforma del sistema operativo dell'immagine creata.

Stringa

Linux | Windows | MacOS

Logs S3

Un oggetto JSON che contiene la configurazione per i log S3 scritti da Image Builder.

Oggetto JSON

{'S3logs': {'s3 ':BucketName' ', 's3 sample-bucketKeyPrefix': ''}} ib-logs

securityGroups

Gli ID dei gruppi di sicurezza che si applicano alle istanze di compilazione e test.

Elenco [Stringa]

[sg-1234567890abcdef1, sg-11112222333344445]

Immagine di origine arN

L'Amazon Resource Name (ARN) della risorsa di immagine Image Builder utilizzata dal flusso di lavoro per le fasi di creazione e test.

Stringa

arn:aws:imagebuilder: ::image//us-east-1111122223333sampleImage1.0.0/1

subnetId

L'ID della sottorete in cui avviare le istanze di compilazione e test.

Stringa

subnet-1234567890abcdef1

terminare InstanceOnFailure

Il valore corrente dell'impostazione che indica a Image Builder di terminare l'istanza in caso di errore o di conservarla per la risoluzione dei problemi.

Booleano

true | false

Fase del flusso di lavoro

La fase corrente in esecuzione per l'esecuzione del flusso di lavoro.

Stringa

Build | Test

workingDirectory

Il percorso della directory di lavoro.

Stringa

/tmp