View a markdown version of this page

Configuration des flux de travail du pipeline d'images dans Image Builder - 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.

Configuration des flux de travail du pipeline d'images dans Image Builder

Grâce aux flux de travail liés aux images, vous pouvez personnaliser les flux de travail exécutés par votre pipeline pour créer, tester et distribuer des images en fonction de vos besoins. Les flux de travail que vous définissez s'exécutent dans le contexte de la structure de flux de travail Image Builder. Pour plus d'informations sur les étapes qui constituent le cadre du flux de travail, consultezGérez les flux de travail de création, de test et de distribution pour les images Image Builder.

Créez un flux de travail

Créez des flux de travail exécutés au cours de la Build phase du framework de flux de travail. Vous ne pouvez spécifier qu'un seul flux de travail de génération pour votre pipeline. Ou vous pouvez ignorer complètement la compilation pour configurer un pipeline de test uniquement.

Workflow de test

Les flux de travail de test sont exécutés au cours de la Test phase du framework de flux de travail. Vous pouvez ajouter un ou plusieurs flux de travail de test à votre pipeline, dans la limite de dix flux de travail au total, y compris vos flux de travail de création et de distribution. Les flux de travail de test peuvent être exécutés en parallèle ou un par un, selon la façon dont vous définissez vos groupes de tests. Vous pouvez également ignorer complètement les tests si vous souhaitez uniquement créer votre pipeline.

Workflow de distribution

Les flux de distribution s'exécutent au cours de la Distribution phase de la structure des flux de travail. Un flux de travail de distribution est facultatif. Si vous n'en spécifiez aucune, Image Builder distribue toujours votre AMI en exécutant la configuration de distribution que vous attachez au pipeline ou à l'image. Spécifiez un flux de distribution lorsque vous souhaitez remplacer cette configuration de distribution par d'autres paramètres de distribution, ou pour obtenir une meilleure visibilité sur le processus de distribution. Vous pouvez spécifier un flux de travail de distribution pour votre pipeline. Si vous créez des images de conteneurs sans spécifier de flux de travail de distribution, Image Builder ajoute le flux de travail de distribution de conteneurs géré par Amazon pour vous.

Définissez des groupes de test pour les flux de travail de test

Vous définissez des flux de travail de test au sein de groupes de tests. Vous pouvez exécuter plusieurs flux de travail de test pour votre pipeline. La limite combinée est de dix flux de travail au total, y compris vos flux de travail de création et de distribution. Vous décidez d'exécuter les flux de travail de test dans un ordre spécifique ou d'en exécuter le plus grand nombre possible en même temps. Leur fonctionnement dépend de la façon dont vous définissez vos groupes de test. Les scénarios suivants illustrent plusieurs manières de définir vos flux de travail de test.

Note

Les onFailure paramètres parallelGroup et s'appliquent uniquement aux flux de travail de test. Image Builder les rejette dans un flux de travail de création ou de distribution avec unInvalidParameterCombinationException.

Comment fonctionnent les groupes de test

Image Builder exécute vos flux de travail de test dans des groupes de test. Il gère les groupes un par un. Les flux de travail de test au sein d'un même groupe s'exécutent en même temps (en parallèle). Image Builder exécute jusqu'à cinq flux de travail de test en même temps ; si un groupe en compte plus de cinq, Image Builder lance le flux de travail de test suivant à la fin de chacun d'entre eux. Un flux de travail de test qui ne fait pas partie d'un groupe s'exécute seul.

La façon dont vous définissez les groupes de test varie selon que vous utilisez la console ou l'API AWS CLI et. Sélectionnez l'onglet correspondant à la méthode que vous utilisez.

Console de gestion AWS

Lorsque vous créez ou modifiez un pipeline dans la console, vous définissez vos flux de travail de test dans la section Workflow de test du processus de création d'image. Pour exécuter des tests, choisissez l'option permettant de sélectionner les flux de travail de test. Pour créer des images sans effectuer de test, choisissez l'option permettant d'ignorer les flux de travail de test.

La console organise les flux de travail de test en groupes de tests. Un nouveau pipeline commence avec un groupe de test. Pour créer votre configuration de test, procédez comme suit :

  • Ajouter un flux de travail de test à un groupe — Ajoutez un flux de travail de test à un groupe et sélectionnez le flux de travail parmi vos propres flux de travail (dont je suis propriétaire) ou les AWS flux de travail gérés (gérés par Amazon). Si le flux de travail définit des paramètres, la console les affiche afin que vous puissiez saisir des valeurs. Un groupe peut contenir jusqu'à cinq flux de travail de test, qui s'exécutent simultanément.

  • Ajouter un groupe de test — Ajoutez un autre groupe de tests pour exécuter un autre ensemble de tests. Vous pouvez ajouter jusqu'à dix groupes de tests. Pour renommer un groupe, choisissez Modifier le nom. Le nom d'un groupe peut comporter jusqu'à 128 caractères et peut inclure des lettres, des chiffres, des traits d'union (-) et des traits de soulignement (). _

Image Builder exécute les groupes de test un par un, dans l'ordre dans lequel ils apparaissent dans l'assistant. Les flux de travail de test au sein d'un groupe s'exécutent simultanément. Un groupe peut contenir jusqu'à cinq flux de travail de test. Pour exécuter vos tests un par un, placez chaque flux de travail de test dans son propre groupe.

Note

Vous pouvez ajouter ou supprimer des flux de travail et des groupes de test, mais vous ne pouvez pas les réorganiser. Planifiez l'ordre de vos groupes de test avant de les créer.

AWS CLI

Lorsque vous utilisez l'API AWS CLI ou Image Builder, vous ne définissez pas directement de groupes de tests. Vous définissez plutôt l'parallelGroupattribut pour chaque flux de travail de test de la workflows liste. Les flux de travail de test qui ont la même parallelGroup valeur forment un groupe et s'exécutent en même temps. Un flux de travail de test qui n'a aucune parallelGroup valeur s'exécute de lui-même. Si vous ne définissez de parallelGroup valeur pour aucun de vos flux de travail de test, Image Builder les exécute un par un.

L'API AWS CLI et ne limite pas le nombre de flux de travail de test dans un groupe. La seule limite est le nombre total de flux de travail, qui ne peut pas dépasser dix (y compris vos flux de travail de création et de distribution). La console limite un groupe à cinq flux de travail de test.

Image Builder exécute toujours les flux de création en premier, puis les flux de travail de test, puis le flux de distribution. Cet ordre s'applique quelle que soit la façon dont vous les mettez en vente.

Au cours de la phase de test, Image Builder organise vos flux de travail de test comme suit :

  • Il classe les groupes en fonction de la position où chaque groupe apparaît pour la première fois dans votre workflows liste. Il ne les classe pas par parallelGroup valeur.

  • Il conserve chaque flux de travail qui n'a aucun groupe dans sa position répertoriée.

  • Il exécute les flux de travail en groupe, à l'endroit où ce groupe apparaît pour la première fois.

Exemple

Supposons que vous listiez cinq flux de travail de test dans cet ordre et que vous parallelGroup définissiez la valeur de certains d'entre eux :

  • Workflow de test A — aucun groupe

  • Workflow de test B — parallelGroup : tests-1

  • Workflow de test C — aucun groupe

  • Workflow de test D — parallelGroup : tests-1

  • Flux de travail de test E — parallelGroup : tests-2

Image Builder les exécute dans l'ordre suivant :

  1. Testez le flux de travail A, seul.

  2. Testez le flux de travail B et le flux de travail de test D en même temps. Ils partagent le tests-1 groupe, qui apparaît pour la première fois dans le flux de travail de test B.

  3. Testez le flux de travail C seul.

  4. Testez le flux de travail E, seul, en tests-2 groupe.

Le flux de travail de test D s'exécute conjointement avec le flux de travail de test B car ils partagent un groupe, même si vous avez répertorié le flux de travail de test C entre eux. Le groupe nommé tests-1 s'exécute avant tests-2 parce qu'il tests-1 apparaît en premier dans la liste. L'ordre des groupes suit l'ordre de la liste, pas la parallelGroup valeur.

Scénario 1 : exécuter un flux de travail de test à la fois

Pour exécuter tous vos flux de travail de test un par un, configurez un groupe de test distinct pour chaque flux de test, dans la limite combinée de dix flux de travail (y compris vos flux de travail de création et de distribution). Image Builder exécute les groupes de test un par un. C'est une façon de s'assurer que vos flux de travail de test s'exécutent un par un dans un ordre spécifique.

Scénario 2 : exécuter plusieurs flux de travail de test en même temps

Si l'ordre n'a pas d'importance et que vous souhaitez exécuter autant de flux de travail de test que possible en même temps, vous pouvez configurer un seul groupe de tests et y placer le nombre maximum de flux de travail de test. Image Builder démarre jusqu'à cinq flux de travail de test en même temps et lance des flux de test supplémentaires au fur et à mesure que d'autres sont terminés. Si votre objectif est d'exécuter vos flux de travail de test le plus rapidement possible, c'est l'une des manières de le faire.

Scénario 3 : mélanger et assortir

Si vous avez un scénario mixte, avec certains flux de travail de test pouvant être exécutés en même temps et d'autres devant être exécutés un par un, vous pouvez configurer vos groupes de tests pour atteindre cet objectif. La seule limite à la façon dont vous configurez vos groupes de test est le nombre maximum de flux de travail de test pouvant être exécutés pour votre pipeline.

Définissez les paramètres du flux de travail dans un pipeline Image Builder depuis la console

Les paramètres de flux de travail fonctionnent de la même manière pour les flux de travail de création, de test et de distribution. Lorsque vous créez ou mettez à jour un pipeline, vous sélectionnez les flux de travail de création, de test et de distribution que vous souhaitez inclure. Si vous avez défini des paramètres dans le document de flux de travail pour un flux de travail que vous avez sélectionné, Image Builder les affiche dans le panneau Paramètres. Le panneau est masqué pour les flux de travail dont aucun paramètre n'est défini.

Chaque paramètre affiche les attributs suivants définis par votre document de flux de travail :

  • Nom (non modifiable) : nom du paramètre.

  • Type (non modifiable) — Type de données pour la valeur du paramètre.

  • Valeur  : valeur du paramètre. Vous pouvez modifier la valeur du paramètre pour la définir pour votre pipeline.

Spécifiez le rôle de service IAM qu'Image Builder utilise pour exécuter des actions de flux de travail

Lorsque vous associez des flux de travail d'images personnalisés à votre pipeline, ou lorsque vous définissez une configuration de journalisation, vous devez également spécifier un rôle d'exécution. Il s'agit du rôle IAM qu'Image Builder assume pour exécuter les actions de votre flux de travail. Le rôle doit faire confiance au responsable du service Image Builder. Pour connaître les autorisations requises, consultez les informations d'accès au service de flux de travail qui suivent.

Pour exécuter des flux de travail liés à l'imagerie, Image Builder doit être autorisé à effectuer des actions de flux de travail. Vous accordez cette autorisation avec un rôle d'exécution qu'Image Builder assume en votre nom. Vous attribuez le rôle d'exécution comme suit.

Important

Nous vous recommandons de ne pas transmettre le rôle AWSServiceRoleForImageBuilder lié à un service en tant que rôle d'exécution. Créez plutôt un rôle IAM personnalisé et associez la politique EC2ImageBuilderExecutionPolicy AWS gérée. Cette politique accorde les mêmes autorisations dont Image Builder a besoin pour appeler Services AWS en votre nom. L'utilisation d'un rôle personnalisé vous permet de contrôler totalement les autorisations utilisées par Image Builder. Il permet également de maintenir vos politiques de contrôle des services (SCP) et vos politiques de contrôle des ressources (RCP) en vigueur pour les opérations qu'Image Builder effectue en votre nom.

  • Console — Dans l'assistant de pipeline Étape 3 Définissez le processus de création d'image, sélectionnez votre rôle personnalisé dans la liste des rôles IAM du panneau d'accès au service.

  • API Image Builder  : dans la demande CreateImage d'action, spécifiez votre rôle personnalisé comme valeur du executionRole paramètre.

Pour créer un rôle d'exécution personnalisé, consultez la section Création d'un rôle pour déléguer des autorisations à un AWS service dans le Guide de Gestion des identités et des accès AWS l'utilisateur.

Associer des flux de travail à un pipeline

Pour associer des flux de travail personnalisés de création, de test et de distribution d'images à votre pipeline, sélectionnez l'onglet correspondant à la méthode que vous souhaitez utiliser.

Console de gestion AWS

Lorsque vous créez ou mettez à jour un pipeline dans le Console de gestion AWS, l'assistant de création d'un pipeline d'images inclut une étape Flux de travail dans laquelle vous sélectionnez les flux de travail exécutés par votre pipeline. Pour associer des flux de travail d'images personnalisés, procédez comme suit au cours de cette étape :

  1. Pour Créer un flux de travail, sélectionnez le flux de travail de génération que vous souhaitez que votre pipeline exécute.

  2. Pour les flux de travail de test, ajoutez un ou plusieurs flux de travail de test et organisez-les en groupes de tests afin de contrôler l'ordre dans lequel ils s'exécutent. Pour de plus amples informations, veuillez consulter Définissez des groupes de test pour les flux de travail de test.

  3. Pour Workflow de distribution, sélectionnez un workflow de distribution si vous souhaitez modifier la configuration de distribution jointe ou obtenir plus de visibilité sur le processus de distribution. Ce nom est facultatif.

  4. Pour Rôle d'exécution, sélectionnez le rôle IAM qu'Image Builder assume pour exécuter les actions de votre flux de travail. Un rôle d'exécution est requis lorsque vous associez des flux de travail d'images personnalisés. Pour de plus amples informations, veuillez consulter Spécifiez le rôle de service IAM qu'Image Builder utilise pour exécuter des actions de flux de travail.

  5. Si un flux de travail que vous avez sélectionné définit des paramètres, définissez leurs valeurs dans le panneau Paramètres. Pour de plus amples informations, veuillez consulter Définissez les paramètres du flux de travail dans un pipeline Image Builder depuis la console.

Pour une présentation étape par étape de l'assistant complet de création d'un pipeline d'images, consultezCréation et mise à jour de pipelines d'images AMI.

AWS CLI

Pour associer des flux d'images personnalisés lorsque vous créez un pipeline, utilisez la create-image-pipeline commande. Spécifiez votre rôle d'exécution à l'aide du --execution-role paramètre et répertoriez vos flux de travail de génération, de test et de distribution avec --workflows ce paramètre. L'exemple suivant crée un pipeline avec un flux de travail de génération, un flux de travail de test et un flux de travail de distribution.

aws imagebuilder create-image-pipeline \ --name example-pipeline \ --image-recipe-arn arn:aws:imagebuilder:us-west-2:111122223333:image-recipe/example/1.0.0 \ --infrastructure-configuration-arn arn:aws:imagebuilder:us-west-2:111122223333:infrastructure-configuration/example \ --execution-role arn:aws:iam::111122223333:role/ImageBuilderWorkflowExecutionRole \ --workflows '[ {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/build/example-build/1.0.0"}, {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/test/example-test/1.0.0","parallelGroup":"group-1","onFailure":"CONTINUE"}, {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/distribution/example-distribute/1.0.0"} ]'