Utiliser des variables dynamiques dans votre document de flux de travail - EC2 Image Builder

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser des variables dynamiques dans votre document de flux de travail

Vous pouvez utiliser des variables dynamiques dans vos documents de flux de travail pour représenter des valeurs qui varient au moment de l'exécution de votre processus de création d'image. L'interpolation de chaînes pour les variables dynamiques vous permet d'intégrer des JSONPath expressions dans du contenu structuré tel que des chaînes JSON. Cela est particulièrement utile lorsque vous devez transmettre des valeurs d'exécution dans des charges utiles complexes à des actions par étapes telles que ou. ExecuteStateMachine WaitForAction

Pour utiliser l'interpolation de chaînes pour les variables dynamiques, placez les JSONPath expressions entre accolades "{{...}}" doubles dans le contenu de votre chaîne. Seules JSONPath les expressions entourées de doubles accolades sont traitées comme des variables. Toute JSONPath expression qui n'est pas entourée d'accolades doubles est traitée comme du contenu de chaîne littéral.

JSONPath syntaxe des variables de flux de travail dynamique

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

Les valeurs des variables dynamiques sont représentées sous forme de JSONPath sélecteurs dotés de nœuds structurels qui identifient de manière unique la variable cible. Le premier nœud après la racine ($) fait référence à la structure du document du flux de travail, telle questepOutputs, ou dans le cas des variables système Image Builder,imageBuilder. La liste suivante contient les nœuds de structure JSONPath de documents de flux de travail pris en charge.

Nœuds de structure de document
  • paramètres - Les paramètres du flux de travail

  • StepOutputs - Sorties d'une étape du même document de flux de travail

  • WorkflowOutputs - Sorties d'un document de flux de travail déjà exécuté

  • imagebuilder - Variables système Image Builder

Les nœuds parameters et structure du stepOutputs document incluent un nœud facultatif pour le nom de l'étape. Cela permet de garantir des noms de variables uniques pour toutes les étapes.

Le dernier nœud de JSONPath est le nom de la variable cible, par exempleinstanceId.

Chaque étape peut faire référence au résultat de toute action d'étape précédente avec ces variables JSONPath dynamiques. Ceci est également connu sous le nom de chaînage ou de référencement. Pour faire référence au résultat d'une action d'une étape précédente, vous pouvez utiliser la variable dynamique suivante.

$.stepOutputs.step-name.output-name
Important

Lorsqu'un paramètre d'entrée fait référence à une variable dynamique, l'indicateur de chaînage (.$) doit être attaché à la fin du nom du paramètre.

Exemple 1 : indicateur de chaînage des paramètres d'entrée

L'exemple suivant montre un paramètre d'entrée qui utilise l'interpolation de chaîne pour résoudre une variable dynamique dans la valeur du paramètre lors de l'exécution.

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

Exemple 2 : interpolation de chaînes dans des variables dynamiques

L'exemple suivant montre comment les variables dynamiques utilisent l'interpolation de chaînes pour déterminer les valeurs lors de l'exécution.

- 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 }}" }

Dans cet exemple, les JSONPath expressions placées entre accolades doubles sont résolues lors de l'exécution :

  • {{ $.stepOutputs.CreateImageFromInstance.imageId }}- Correspond à l'identifiant réel de l'image à partir de l' CreateImageFromInstance étape

  • {{ $.imagebuilder.dateTime }}- Corrige à l'horodatage de construction actuel. Consultez Utiliser les variables système Image Builder la liste des variables système Image Builder que vous pouvez utiliser.

  • {{ $.stepOutputs.LaunchStep.instanceType }}- Résout au type d'instance utilisé dans LaunchStep

Les chaînes littérales "region": "us-east-1" restent inchangées.

Note

L'interpolation de chaînes fonctionne avec n'importe quel contenu de chaîne de votre document de flux de travail, y compris les chaînes multilignes à l'aide de l'opérateur YAML pipe ()|. L'exigence d'orthèse bouclée agit comme un mécanisme d'échappement permettant de faire clairement la distinction entre les JSONPath variables et le contenu du texte littéral.

Utiliser les variables système Image Builder

Image Builder fournit les variables système suivantes que vous pouvez utiliser dans votre document de flux de travail :

Nom de la variable

Description

Type

Exemple de valeur

cloudWatchLogGroupe

Nom du groupe CloudWatch Logs pour les logs de sortie.

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

Chaîne

/aws/imagebuilder/sampleImageRecipe

cloudWatchLogStream

Nom du flux CloudWatch Logs pour les logs de sortie.

Chaîne

1.0.0/1

collectImageMetadata

Le paramètre qui indique à Image Builder s'il doit collecter les métadonnées de l'instance.

Booléen

true | false

collectImageScanConclusions

La valeur actuelle du paramètre qui permet à Image Builder de collecter les résultats de numérisation d'images.

Booléen

true | false

imageBuildNumber

Numéro de version de compilation de l'image.

Entier

1

imageId

ID AMI de l'image de base.

Chaîne

ami-1234567890abcdef1

Nom de l'image

Le nom de l'image.

Chaîne

sampleImage

imageType

Type de sortie d'image.

Chaîne

AMI | Docker

imageVersionNumber

Numéro de version de l'image.

Chaîne

1.0.0

instanceProfileName

Nom du rôle de profil d'instance utilisé par Image Builder pour lancer les instances de génération et de test.

Chaîne

SampleImageBuilderInstanceProfileRole

platform

La plate-forme du système d'exploitation de l'image créée.

Chaîne

Linux | Windows | MacOS

Journaux S3

Objet JSON contenant la configuration des journaux S3 écrits par Image Builder.

Objet JSON

{'S3Logs' : {'s3 BucketName ':' ', sample-bucket 's3' : KeyPrefix ''}} ib-logs

securityGroups

Le groupe de sécurité IDs qui s'applique à la création et au test des instances.

Liste [Chaîne]

[sg-1234567890abcdef1, sg-11112222333344445]

Source ImageLearn

Le nom de ressource Amazon (ARN) de la ressource d'image Image Builder que le flux de travail utilise pour les étapes de création et de test.

Chaîne

arn:aws:imagebuilder : ::image/ us-east-1 111122223333 sampleImage 1.0.0/1

subnetId

ID du sous-réseau dans lequel lancer les instances de génération et de test.

Chaîne

subnet-1234567890abcdef1

terminateInstanceOnDéfaillance

La valeur actuelle du paramètre qui indique à Image Builder de mettre fin à l'instance en cas de défaillance ou de la conserver à des fins de dépannage.

Booléen

true | false

Phase du flux de travail

L'étape en cours d'exécution pour l'exécution du flux de travail.

Chaîne

Build | Test

workingDirectory

Le chemin d'accès au répertoire de travail.

Chaîne

/tmp