View a markdown version of this page

Utilisez 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.

Utilisez 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'images. L'interpolation de chaînes pour les variables dynamiques vous permet d'intégrer des expressions JSONPath 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 d'étape telles que ou. ExecuteStateMachine WaitForAction

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

Syntaxe des variables de flux de travail dynamiques JSONPath

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

Les valeurs des variables dynamiques sont représentées sous forme de sélecteurs JSONPath avec des 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 que, dans le cas des variables système Image BuilderstepOutputs, ou dans le cas des variables système Image Builder,imageBuilder. La liste suivante contient les nœuds de structure de document de flux de travail JSONPath pris en charge.

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

  • StepOutputs - Résultats 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 la structure du stepOutputs document incluent un nœud facultatif pour le nom de l'étape. Cela permet de garantir des noms de variables uniques à toutes les étapes.

Le nœud final du JSONPath est le nom de la variable cible, par exemple. instanceId

Chaque étape peut faire référence à la sortie de toute action d'étape précédente avec ces variables dynamiques JSONPath. Ceci est également connu sous le nom de chaînage ou de référencement. Pour faire référence à la sortie d'une action d'é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 au moment 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 au moment 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 expressions JSONPath entourées de doubles accolades sont résolues au moment de l'exécution :

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

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

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

Les chaînes littérales like "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'accolades agit comme un mécanisme d'échappement pour faire clairement la distinction entre les variables JSONPath et le contenu textuel 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. Il s'agit de valeurs en lecture seule qu'Image Builder renseigne lors de l'exécution. Vous faites référence à une variable système avec le nœud de structure du imagebuilder document, par exemple$.imagebuilder.platform.

Nom de la variable

Description

Type

Exemple de valeur

nuage WatchLogGroup

Nom du groupe de CloudWatch journaux pour les journaux de sortie.

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

Chaîne

/aws/imagebuilder/sampleImageRecipe

nuage WatchLogStream

Le nom du flux CloudWatch Logs pour les logs de sortie.

Chaîne

1.0.0/1

collecter ImageMetadata

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

Booléen

true | false

collecter ImageScanFindings

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

Booléen

true | false

image BuildNumber

Le numéro de version de build 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

image VersionNumber

Numéro de version de l'image.

Chaîne

1.0.0

instance ProfileName

Nom du rôle de profil d'instance qu'Image Builder utilise pour lancer des instances de création et de test.

Chaîne

SampleImageBuilderInstanceProfileRole

platform

Plateforme 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 ':' ', 's3sample-bucket' : KeyPrefix ''}} ib-logs

securityGroups

Les ID des groupes de sécurité qui s'appliquent à la création et au test des instances.

Liste [Chaîne]

[sg-1234567890abcdef1, sg-11112222333344445]

Source : Imagearn

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-1111122223333sampleImage1.0.0/1

subnetId

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

Chaîne

subnet-1234567890abcdef1

mettre fin InstanceOnFailure

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

Booléen

true | false

Phase de flux de travail

Étape en cours d'exécution du flux de travail.

Chaîne

Build | Test

workingDirectory

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

Chaîne

/tmp