Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beheben Sie Image Builder-Probleme
EC2 Image Builder lässt sich AWS-Services zur Überwachung und Fehlerbehebung integrieren, um Ihnen bei der Behebung von Problemen bei der Image-Erstellung zu helfen. Image Builder verfolgt und zeigt den Fortschritt für jeden Schritt des Image-Erstellungsprozesses an. Darüber hinaus kann Image Builder Protokolle an einen von Ihnen angegebenen Amazon S3-Speicherort exportieren.
Für eine erweiterte Problembehandlung können Sie mit Run Command vordefinierte Befehle und Skripts AWS Systems Manager ausführen.
Tipp
Sie können die vom AWS DevOps Agenten unterstützte Funktion zur Fehlerbehebung verwenden, um fehlgeschlagene Builds zu diagnostizieren und eine AI-powered Ursachenanalyse mit Maßnahmen zur Problembehebung durchzuführen. Weitere Informationen finden Sie unter Beheben Sie fehlgeschlagene Builds mit AI — Preview.
Inhalt
Fehlerbehebung bei Pipeline-Builds
Wenn ein Image Builder-Pipeline-Build fehlschlägt, gibt Image Builder eine Fehlermeldung zurück, die den Fehler beschreibt. Image Builder gibt auch eine workflow execution ID in der Fehlermeldung enthaltene Meldung zurück, z. B. die in der folgenden Beispielausgabe:
Workflow Execution ID:wf-12345abc-6789-0123-abc4-567890123abcfailed with reason: …
Image Builder ordnet Image-Erstellungsaktionen an und leitet sie durch eine Reihe von Schritten, die für die Laufzeitphasen des standardmäßigen Image-Erstellungsprozesses definiert sind. Den Erstellungs- und Testphasen des Prozesses ist jeweils ein Arbeitsablauf zugeordnet. Wenn Image Builder einen Workflow zum Erstellen oder Testen eines neuen Images ausführt, generiert es eine Workflow-Metadatenressource, die die Laufzeitdetails verfolgt.
Container-Images verfügen über einen zusätzlichen Workflow, der während der Verteilung ausgeführt wird.
Informieren Sie sich über Einzelheiten zu Ausfällen von Runtime-Instances für Ihren Workflow
Um einen Laufzeitfehler für Ihren Workflow zu beheben, können Sie die GetWorkflowExecution und ListWorkflowStepExecutions API-Aktionen mit Ihrem aufrufenworkflow execution ID.
Überprüfen Sie die Workflow-Laufzeitprotokolle
-
CloudWatch Amazon-Protokolle
Image Builder veröffentlicht detaillierte Workflow-Ausführungsprotokolle in der folgenden Image CloudWatch Builder-Protokollgruppe und im folgenden Stream:
Mit CloudWatch Logs können Sie Protokolldaten mit Filtermustern durchsuchen. Weitere Informationen finden Sie unter Durchsuchen von Protokolldaten mithilfe von Filtermustern im Amazon CloudWatch Logs-Benutzerhandbuch.
-
AWS CloudTrail
Alle Build-Aktivitäten werden ebenfalls protokolliert CloudTrail , sofern sie in Ihrem Konto aktiviert sind. Du kannst CloudTrail Ereignisse nach der Quelle filtern
imagebuilder.amazonaws.com. Alternativ können Sie nach der Amazon EC2-Instance-ID suchen, die im Ausführungsprotokoll zurückgegeben wird, um weitere Details zur Pipeline-Ausführung zu erhalten. -
Amazon Simple Storage Service (S3)
Wenn Sie in Ihrer Infrastrukturkonfiguration einen S3-Bucket-Namen und ein Schlüsselpräfix angegeben haben, folgt der Pfad für das Laufzeitprotokoll des Workflow-Schritts diesem Muster:
S3://S3BucketName/KeyPrefix/ImageName/ImageVersion/ImageBuildVersion/WorkflowExecutionId/StepNameDie Protokolle, die Sie an Ihren S3-Bucket senden, zeigen die Schritte und Fehlermeldungen für Aktivitäten auf der EC2-Instance während des Image-Build-Prozesses. Die Protokolle enthalten die Protokollausgaben des Komponentenmanagers, die Definitionen der Komponenten, die ausgeführt wurden, und die detaillierte Ausgabe (in JSON) aller auf der Instance ausgeführten Schritte. Wenn Sie auf ein Problem stoßen, sollten Sie diese Dateien zunächst überprüfen
application.log, um die Ursache des Problems auf der Instance zu diagnostizieren.
Standardmäßig fährt Image Builder die Amazon EC2-Build- oder Test-Instance herunter, die ausgeführt wird, wenn die Pipeline ausfällt. Sie können die Instance-Einstellungen für die Infrastrukturkonfigurationsressource ändern, die Ihre Pipeline verwendet, um Ihre Build- oder Test-Instance zur Fehlerbehebung beizubehalten.
Um die Instanzeinstellungen in der Konsole zu ändern, müssen Sie das Kontrollkästchen Instanz bei Ausfall beenden im Abschnitt Einstellungen zur Problembehandlung in Ihrer Infrastrukturkonfigurationsressource deaktivieren.
Sie können die Instanzeinstellungen auch mit dem update-infrastructure-configuration Befehl im ändern AWS CLI. Stellen Sie den terminateInstanceOnFailure Wert false in der JSON-Datei, auf den der Befehl mit dem --cli-input-json Parameter verweist, ein. Details hierzu finden Sie unter Aktualisieren Sie eine Infrastrukturkonfiguration.
Fehlerbehebungsszenarien
In diesem Abschnitt werden die folgenden detaillierten Szenarien zur Problembehandlung aufgeführt:
Um die Details eines Szenarios anzuzeigen, wählen Sie den Titel des Szenarios, um es zu erweitern. Sie können mehrere Titel gleichzeitig erweitern lassen.
Description
Der Pipeline-Build schlägt mit "AccessDenied: Statuscode verweigert: 403" fehl.
Ursache
Mögliche Gründe hierfür sind:
-
Das Instanzprofil verfügt nicht über die erforderlichen Berechtigungen für den Zugriff auf APIs oder Komponentenressourcen.
-
Der Instanzprofilrolle fehlen Berechtigungen, die für die Anmeldung bei Amazon S3 erforderlich sind. In den meisten Fällen tritt dies auf, wenn die Instance-Profilrolle keine PutObject Berechtigungen für Ihre S3-Buckets hat.
Lösung
Je nach Ursache kann dieses Problem wie folgt behoben werden:
-
Im Instanzprofil fehlen verwaltete Richtlinien — Fügen Sie die fehlenden Richtlinien zu Ihrer Instanzprofilrolle hinzu. Führen Sie dann die Pipeline erneut aus.
-
Dem Instanzprofil fehlen Schreibberechtigungen für den S3-Bucket — Fügen Sie Ihrer Instanzprofilrolle eine Richtlinie hinzu, die PutObject Schreibberechtigungen für Ihren S3-Bucket gewährt. Führen Sie dann die Pipeline erneut aus.
Description
Der Pipeline-Build schlägt mit „Status = 'TimedOut'“ und „Fehlermeldung = 'Das Zeitlimit für den Schritt ist überschritten, während der Schritt die Verfügbarkeit des Systems Manager Agents auf den Zielinstanzen verifiziert'“.
Ursache
Mögliche Gründe hierfür sind:
-
Die Instanz, die zur Ausführung der Build-Operationen und zur Ausführung von Komponenten gestartet wurde, konnte nicht auf den Systems Manager-Endpunkt zugreifen.
-
Das Instanzprofil verfügt nicht über die erforderlichen Berechtigungen.
Lösung
Je nach möglicher Ursache kann dieses Problem wie folgt behoben werden:
-
Zugriffsproblem, privates Subnetz — Wenn Sie ein privates Subnetz einrichten, stellen Sie sicher, dass Sie PrivateLink Endpunkte für Systems Manager, Image Builder und, falls Sie eine Protokollierung wünschen, Amazon eingerichtet haben. S3/CloudWatch Weitere Informationen zum Einrichten von PrivateLink Endpunkten finden Sie unter Zugriff auf Dienste über. AWSAWS PrivateLink
-
Fehlende Berechtigungen — Fügen Sie Ihrer mit dem IAM-Dienst verknüpften Rolle für Image Builder die folgenden verwalteten Richtlinien hinzu:
-
EC2InstanceProfileForImageBuilder
-
EC2InstanceProfileForImageBuilderECRContainerBuilds
-
AmazonSSMManagedInstanceCore
Weitere Informationen zur dienstverknüpften Image Builder-Rolle finden Sie unter. Verwenden Sie mit dem IAM-Dienst verknüpfte Rollen für Image Builder
-
Description
Wenn der Instance-Typ, der zum Erstellen eines Image Builder-Windows-AMI verwendet wird, nicht mit dem Instance-Typ übereinstimmt, der für den Start vom AMI verwendet wird, kann ein Problem auftreten, wenn Volumes, die keine Root-Volumes sind, beim Start offline sind. Dies passiert hauptsächlich, wenn die Build-Instance eine neuere Architektur als die Launch-Instance verwendet.
Das folgende Beispiel zeigt, was passiert, wenn ein Image Builder-AMI auf einem EC2 Nitro-Instance-Typ erstellt und auf einer EC2 Xen-Instance gestartet wird:
Build-Instance-Typ: m5.large (Nitro)
Instanztyp starten: 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
Ursache
Aufgrund der Standardeinstellungen von Windows werden neu erkannte Festplatten nicht automatisch online geschaltet und formatiert. Wenn der Instanztyp auf EC2 geändert wird, behandelt Windows dies so, als würden neue Festplatten erkannt. Dies liegt an der zugrunde liegenden Treiberänderung.
Lösung
Wir empfehlen, dass Sie beim Erstellen Ihres Windows-AMI, von dem aus Sie starten möchten, dasselbe Instance-Typsystem verwenden. Schließen Sie in Ihrer Infrastrukturkonfiguration keine Instance-Typen ein, die auf unterschiedlichen Systemen basieren. Wenn einer der von Ihnen angegebenen Instanztypen das Nitro-System verwendet, sollten alle das Nitro-System verwenden.
Weitere Informationen zu Instances, die auf dem Nitro-System basieren, finden Sie im Amazon EC2-Benutzerhandbuch unter Auf dem Nitro-System erstellte Instances.
Description
Sie verwenden ein CIS-gehärtetes Basis-Image und der Build schlägt fehl.
Ursache
Wenn das /tmp Verzeichnis als klassifiziert istnoexec, kann dies dazu führen, dass Image Builder fehlschlägt.
Lösung
Wählen Sie im workingDirectory Feld des Bildrezepts einen anderen Speicherort für Ihr Arbeitsverzeichnis. Weitere Informationen finden Sie in der Beschreibung des ImageRecipe Datentyps.
Description
Systems Manager Automation zeigt einen Fehler im AssertInventoryCollection Automatisierungsschritt an.
Ursache
Sie oder Ihre Organisation haben möglicherweise eine Systems Manager State Manager-Zuordnung erstellt, die Inventarinformationen für EC2-Instances sammelt. Wenn die erweiterte Erfassung von Image-Metadaten für Ihre Image Builder-Pipeline aktiviert ist (dies ist die Standardeinstellung), versucht Image Builder, eine neue Inventarzuordnung für die Build-Instance zu erstellen. Systems Manager lässt jedoch nicht mehrere Inventarzuordnungen für verwaltete Instanzen zu und verhindert eine neue Zuordnung, falls bereits eine vorhanden ist. Dadurch schlägt der Vorgang fehl und der Pipeline-Build schlägt fehl.
Lösung
Um dieses Problem zu beheben, deaktivieren Sie die erweiterte Erfassung von Bildmetadaten mit einer der folgenden Methoden:
-
Aktualisieren Sie Ihre Image-Pipeline in der Konsole, um das Kontrollkästchen Enable enhanced metadata collection zu deaktivieren. Speichern Sie Ihre Änderungen und führen Sie einen Pipeline-Build aus.
Weitere Informationen zum Aktualisieren Ihrer AMI-Image-Pipeline mithilfe der EC2 Image Builder-Konsole finden Sie unterAktualisieren Sie die AMI-Image-Pipelines von der Konsole aus. Weitere Informationen zum Aktualisieren Ihrer Container-Image-Pipeline mithilfe der EC2 Image Builder-Konsole finden Sie unter. Aktualisieren Sie eine Container-Image-Pipeline von der Konsole aus
-
Sie können Ihre Image-Pipeline auch mit dem update-image-pipeline Befehl im AWS CLI aktualisieren. Fügen Sie dazu die
EnhancedImageMetadataEnabledEigenschaft in Ihre JSON-Datei ein und setzen Sie sie auffalse. Das folgende Beispiel zeigt, wie die Eigenschaft auf festgelegt istfalse.{ "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" }
Um dies bei neuen Pipelines zu verhindern, deaktivieren Sie das Kontrollkästchen Enable enhanced metadata collection, wenn Sie mit der EC2 Image Builder-Konsole eine neue Pipeline erstellen, oder setzen Sie den Wert der EnhancedImageMetadataEnabled Eigenschaft in Ihrer JSON-Datei auf, false wenn Sie Ihre Pipeline mit dem erstellen. AWS CLI