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 JSONPath espressioni 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 JSONPath espressioni in parentesi doppie arricciate all'interno del contenuto della stringa. "{{...}}" Solo JSONPath le espressioni racchiuse tra parentesi graffe doppie vengono elaborate come variabili. Tutte JSONPath le espressioni non racchiuse tra parentesi graffe doppie vengono trattate come contenuto di stringhe letterali.

JSONPath sintassi dinamica delle variabili del flusso di lavoro

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

I valori delle variabili dinamiche sono rappresentati come JSONPath selettori 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 JSONPath del flusso di lavoro 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.

L'ultimo nodo di JSONPath è il nome della variabile di destinazione, ad esempioinstanceId.

Ogni passaggio può fare riferimento all'output di qualsiasi azione del passaggio precedente con queste variabili JSONPath dinamiche. 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 JSONPath espressioni racchiuse tra parentesi graffe doppie vengono risolte in fase di esecuzione:

  • {{ $.stepOutputs.CreateImageFromInstance.imageId }}- Risolve all'ID effettivo dell'immagine risultante dalla fase 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 e contenuto di testo letterale. JSONPath

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:

Nome della variabile

Description

Tipo

Valore di esempio

cloudWatchLogGruppo

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

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

Stringa

/aws/imagebuilder/sampleImageRecipe

cloudWatchLogStream

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

Stringa

1.0.0/1

collectImageMetadata

L'impostazione che indica a Image Builder se raccogliere i metadati dell'istanza.

Booleano

true | false

collectImageScanRisultati

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

Booleano

true | false

imageBuildNumber

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

imageVersionNumber

Il numero di versione dell'immagine.

Stringa

1.0.0

instanceProfileName

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

Il gruppo di sicurezza IDs che si applica alla creazione e al test delle istanze.

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

terminateInstanceOnFallimento

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