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 di stringhe per variabili dinamiche consente di incorporare espressioni JSONPath all'interno di contenuti strutturati come stringhe JSON. Ciò è particolarmente utile quando è necessario passare valori di runtime all'interno di payload complessi per eseguire azioni come o. ExecuteStateMachine WaitForAction

Per utilizzare l'interpolazione di stringhe per variabili dinamiche, racchiudi le espressioni JsonPath tra parentesi graffe doppie 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 parentesi graffe doppie vengono trattate come contenuto di stringhe letterali.

Sintassi dinamica delle variabili del flusso di lavoro 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: restituisce i risultati di una fase dello stesso documento del flusso di lavoro

  • WorkflowOutputs: output da un documento del flusso di lavoro già in esecuzione

  • imagebuilder - Variabili di sistema di Image Builder

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

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

Ogni passaggio può fare riferimento all'output di qualsiasi azione del passaggio precedente con queste variabili dinamiche JsonPath. Questa operazione è nota anche 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 fa riferimento 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 parentesi graffe doppie vengono risolte in fase di esecuzione:

  • {{ $.stepOutputs.CreateImageFromInstance.imageId }}- Risolve all'ID effettivo dell'immagine dal passaggio CreateImageFromInstance

  • {{ $.imagebuilder.dateTime }}- Risolve al timestamp di compilazione corrente. Usa le variabili di sistema di Image BuilderPer un elenco delle variabili di sistema di Image Builder che è possibile utilizzare, vedere.

  • {{ $.stepOutputs.LaunchStep.instanceType }}- Risolve al tipo di istanza utilizzato in LaunchStep

Le stringhe letterali, ad esempio, rimangono invariate. "region": "us-east-1"

Nota

L'interpolazione delle stringhe funziona con qualsiasi contenuto di stringhe nel documento del flusso di lavoro, incluse le stringhe multilinea che utilizzano l'operatore YAML pipe (). | Il requisito curly brace funge da meccanismo di fuga 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

nuvola WatchLogGroup

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

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

Stringa

/aws/imagebuilder/sampleImageRecipe

nuvola 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 dell'istanza.

Booleano

true | false

raccogliere 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 di 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

Registri S3

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

Oggetto JSON

{'S3logs': {'s3 ':' ', 's3BucketName': sample-bucket '}} KeyPrefix ib-logs

securityGroups

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

Elenco [Stringa]

[sg-1234567890abcdef1, sg-11112222333344445]

Fonte ImageRan

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 build e test.

Stringa

subnet-1234567890abcdef1

terminare InstanceOnFailure

Il valore corrente dell'impostazione che ordina 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