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.
Résoudre les problèmes liés à Image Builder
EC2 Image Builder s'intègre à des Services AWS fins de surveillance et de dépannage afin de vous aider à résoudre les problèmes liés à la création d'images. Image Builder suit et affiche la progression de chaque étape du processus de création d'images. En outre, Image Builder peut exporter des journaux vers un emplacement Amazon S3 que vous fournissez.
Pour un dépannage avancé, vous pouvez exécuter des commandes et des scripts prédéfinis à l'aide de l'option AWS Systems Manager Exécuter la commande.
Astuce
Vous pouvez utiliser la fonction de résolution des problèmes, optimisée par AWS DevOps l'Agent, pour diagnostiquer les versions ayant échoué et obtenir une analyse des AI-powered causes premières avec des étapes de correction. Pour de plus amples informations, veuillez consulter Résoudre les problèmes liés aux builds ayant échoué avec l'IA - Aperçu.
Table des matières
Résoudre les problèmes liés aux builds de pipelines
Si la création d'un pipeline Image Builder échoue, Image Builder renvoie un message d'erreur décrivant l'échec. Image Builder renvoie également un workflow execution ID message d'échec, tel que celui de l'exemple de sortie suivant :
Workflow Execution ID:wf-12345abc-6789-0123-abc4-567890123abcfailed with reason: …
Image Builder organise et dirige les actions de création d'images selon une série d'étapes définies pour les étapes d'exécution de son processus de création d'image standard. Les étapes de création et de test du processus sont chacune associées à un flux de travail. Lorsqu'Image Builder exécute un flux de travail pour créer ou tester une nouvelle image, il génère une ressource de métadonnées de flux de travail qui enregistre les détails d'exécution.
Les images de conteneurs comportent un flux de travail supplémentaire qui s'exécute pendant la distribution.
Recherchez des informations sur les défaillances des instances d'exécution pour votre flux de travail
Pour résoudre un échec d'exécution de votre flux de travail, vous pouvez appeler les actions d'ListWorkflowStepExecutionsAPI GetWorkflowExecution et avec votreworkflow execution ID.
Consulter les journaux d'exécution des flux de travail
-
CloudWatch Journaux Amazon
Image Builder publie des journaux d'exécution de flux de travail détaillés dans le groupe et le flux Image Builder CloudWatch Logs suivants :
Avec CloudWatch Logs, vous pouvez rechercher des données de journal à l'aide de modèles de filtre. Pour plus d'informations, consultez la section Rechercher des données de journal à l'aide de modèles de filtre dans le guide de l'utilisateur Amazon CloudWatch Logs.
-
AWS CloudTrail
Toutes les activités de création sont également enregistrées CloudTrail si elles sont activées dans votre compte. Vous pouvez filtrer CloudTrail les événements en fonction de leur source
imagebuilder.amazonaws.com. Vous pouvez également rechercher l'ID d'instance Amazon EC2 renvoyé dans le journal d'exécution pour obtenir plus de détails sur l'exécution du pipeline. -
Amazon Simple Storage Service (S3)
Si vous avez spécifié un nom de compartiment S3 et un préfixe de clé dans la configuration de votre infrastructure, le chemin du journal d'exécution des étapes du workflow suit le modèle suivant :
S3://S3BucketName/KeyPrefix/ImageName/ImageVersion/ImageBuildVersion/WorkflowExecutionId/StepNameLes journaux que vous envoyez à votre compartiment S3 indiquent les étapes et les messages d'erreur relatifs à l'activité sur l'instance EC2 pendant le processus de création de l'image. Les journaux incluent les sorties de journal du gestionnaire de composants, les définitions des composants qui ont été exécutés et la sortie détaillée (en JSON) de toutes les étapes effectuées sur l'instance. Si vous rencontrez un problème, vous devez passer en revue ces fichiers, en commençant par
application.log, pour diagnostiquer la cause du problème sur l'instance.
Par défaut, Image Builder arrête l'instance de compilation ou de test Amazon EC2 qui est en cours d'exécution lorsque le pipeline échoue. Vous pouvez modifier les paramètres d'instance pour la ressource de configuration d'infrastructure utilisée par votre pipeline, afin de conserver votre instance de génération ou de test à des fins de dépannage.
Pour modifier les paramètres de l'instance dans la console, vous devez désactiver la case à cocher Terminer l'instance en cas de panne située dans la section Paramètres de dépannage de votre ressource de configuration d'infrastructure.
Vous pouvez également modifier les paramètres de l'instance à l'aide de la update-infrastructure-configuration commande du AWS CLI. Définissez la terminateInstanceOnFailure valeur false dans le fichier JSON auquel la commande fait référence avec le --cli-input-json paramètre. Pour en savoir plus, consultez Mettre à jour une configuration d'infrastructure.
Scénarios de résolution des problèmes
Cette section répertorie les scénarios de dépannage détaillés suivants :
Pour voir les détails d'un scénario, choisissez le titre du scénario pour le développer. Vous pouvez étendre plusieurs titres en même temps.
Description
La compilation du pipeline échoue avec « AccessDenied : Code d'état Accès refusé : 403 ».
Cause
Les causes possibles incluent :
-
Le profil d'instance ne dispose pas des autorisations requises pour accéder aux API ou aux ressources des composants.
-
Le rôle de profil d'instance ne dispose pas des autorisations requises pour la connexion à Amazon S3. Cela se produit le plus souvent lorsque le rôle de profil d'instance ne dispose pas PutObject d'autorisations pour vos compartiments S3.
Solution
Selon la cause, ce problème peut être résolu comme suit :
-
Le profil d'instance ne dispose pas de politiques gérées : ajoutez les politiques manquantes à votre rôle de profil d'instance. Ensuite, relancez le pipeline.
-
Le profil d'instance ne dispose pas d'autorisations d'écriture pour le compartiment S3 : ajoutez une politique à votre rôle de profil d'instance qui accorde PutObject des autorisations d'écriture dans votre compartiment S3. Ensuite, relancez le pipeline.
Description
La génération du pipeline échoue avec « status = 'TimedOut' » et « message d'échec = 'L'étape a expiré alors que l'étape vérifie la disponibilité de l'agent Systems Manager sur la ou les instances cibles '».
Cause
Les causes possibles incluent :
-
L'instance qui a été lancée pour effectuer les opérations de génération et exécuter des composants n'a pas pu accéder au point de terminaison Systems Manager.
-
Le profil d'instance ne dispose pas des autorisations requises.
Solution
En fonction de la cause possible, ce problème peut être résolu comme suit :
-
Problème d'accès, sous-réseau privé — Si vous créez dans un sous-réseau privé, assurez-vous d'avoir configuré des PrivateLink points de terminaison pour Systems Manager, Image Builder et, si vous souhaitez enregistrer, Amazon. S3/CloudWatch Pour plus d'informations sur la configuration des PrivateLink terminaux, voir Accéder aux AWS services via AWS PrivateLink.
-
Autorisations manquantes : ajoutez les politiques gérées suivantes à votre rôle lié au service IAM pour Image Builder :
-
EC2InstanceProfileForImageBuilder
-
EC2InstanceProfileForImageBuilderECRContainerBuilds
-
AmazonSSMManagedInstanceCore
Pour plus d'informations sur le rôle lié au service Image Builder, consultez. Utiliser des rôles liés à un service IAM pour Image Builder
-
Description
Lorsque le type d'instance utilisé pour créer une AMI Windows Image Builder ne correspond pas au type d'instance utilisé pour le lancement à partir de l'AMI, un problème peut survenir lorsque des volumes non root sont hors ligne au lancement. Cela se produit principalement lorsque l'instance de génération utilise une architecture plus récente que l'instance de lancement.
L'exemple suivant montre ce qui se passe lorsqu'une AMI Image Builder est créée sur un type d'instance EC2 Nitro et lancée sur une instance EC2 Xen :
Type d'instance de compilation : m5.large (Nitro)
Type d'instance de lancement : t2.medium (Xen)
PS C:\Users\Administrator>get-diskNumber Friendly Name Serial Number Health Status Operational Status Total Size Partition Style ------ ------------- ------------- ------------- ------------------ ---------- --------------- 0 AWS PVDISK vol0abc12d34e567f8a9 Healthy Online 30 GB MBR 1 AWS PVDISK vol1bcd23e45f678a9b0 Healthy Offline 8 GB MBR
Cause
En raison des paramètres par défaut de Windows, les disques récemment découverts ne sont pas automatiquement mis en ligne et formatés. Lorsque le type d'instance est modifié sur EC2, Windows le considère comme de nouveaux disques découverts. Cela est dû au changement de moteur sous-jacent.
Solution
Nous vous recommandons d'utiliser le même système de types d'instances lors de la création de l'AMI Windows à partir de laquelle vous souhaitez le lancer. N'incluez pas les types d'instances créés sur différents systèmes dans la configuration de votre infrastructure. Si l'un des types d'instances que vous spécifiez utilise le système Nitro, ils doivent tous utiliser le système Nitro.
Pour plus d'informations sur les instances créées sur le système Nitro, consultez la section Instances créées sur le système Nitro dans le guide de l'utilisateur Amazon EC2.
Description
Vous utilisez une image de base renforcée CIS et la compilation échoue.
Cause
Lorsque le /tmp répertoire est classé comme telnoexec, cela peut entraîner l'échec d'Image Builder.
Solution
Choisissez un autre emplacement pour votre répertoire de travail dans le workingDirectory champ de la recette d'image. Pour plus d'informations, consultez la description du type de ImageRecipe données.
Description
Systems Manager Automation indique un échec lors de l'étape AssertInventoryCollection d'automatisation.
Cause
Vous ou votre organisation avez peut-être créé une association Systems Manager State Manager qui collecte des informations d'inventaire pour les instances EC2. Si la collecte améliorée de métadonnées d'image est activée pour votre pipeline Image Builder (c'est la valeur par défaut), Image Builder tente de créer une nouvelle association d'inventaire pour l'instance de génération. Toutefois, Systems Manager n'autorise pas plusieurs associations d'inventaire pour les instances gérées et empêche toute nouvelle association s'il en existe déjà une. Cela entraîne l'échec de l'opération et entraîne l'échec de la construction du pipeline.
Solution
Pour résoudre ce problème, désactivez la collecte améliorée de métadonnées d'image à l'aide de l'une des méthodes suivantes :
-
Mettez à jour votre pipeline d'images dans la console pour désactiver la case à cocher Activer la collecte améliorée de métadonnées. Enregistrez vos modifications et lancez une génération de pipeline.
Pour plus d'informations sur la mise à jour de votre pipeline d'images AMI à l'aide de la console EC2 Image Builder, consultezMettre à jour les pipelines d'images AMI depuis la console. Pour plus d'informations sur la mise à jour de votre pipeline d'images de conteneur à l'aide de la console EC2 Image Builder, consultezMettre à jour un pipeline d'images de conteneur depuis la console.
-
Vous pouvez également mettre à jour votre pipeline d'images à l'aide de la update-image-pipeline commande du AWS CLI. Pour ce faire, incluez la
EnhancedImageMetadataEnabledpropriété dans votre fichier JSON, en lui attribuant la valeurfalse. L'exemple suivant montre la propriété définie surfalse.{ "name": "MyWindows2019Pipeline", "description": "Builds Windows 2019 Images", "enhancedImageMetadataEnabled":false, "imageRecipeArn": "arn:aws:imagebuilder:us-west-2:123456789012:image-recipe/my-example-recipe/2020.12.03", "infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:infrastructure-configuration/my-example-infrastructure-configuration", "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/my-example-distribution-configuration", "imageTestsConfiguration": { "imageTestsEnabled": true, "timeoutMinutes": 60 }, "schedule": { "scheduleExpression": "cron(0 0 * * SUN *)", "pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" }, "status": "ENABLED" }
Pour éviter que cela ne se produise pour les nouveaux pipelines, désactivez la case à cocher Activer la collecte améliorée de métadonnées lorsque vous créez un nouveau pipeline à l'aide de la console EC2 Image Builder, ou définissez la valeur de la EnhancedImageMetadataEnabled propriété dans votre fichier JSON sur false lorsque vous créez votre pipeline à l'aide du AWS CLI.