Risolvere i problemi relativi a Image Builder - EC2 Image Builder

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risolvere i problemi relativi a Image Builder

EC2 Image Builder si integra con il monitoraggio e la risoluzione dei problemi Servizi AWS per aiutarti a risolvere i problemi di creazione delle immagini. Image Builder monitora e visualizza l'avanzamento di ogni fase del processo di creazione dell'immagine. Inoltre, Image Builder può esportare i log in una posizione Amazon S3 fornita da te.

Per una risoluzione avanzata dei problemi, puoi eseguire comandi e script predefiniti utilizzando Run Command.AWS Systems Manager

Risolvi i problemi relativi alle build della pipeline

Se la compilazione di una pipeline di Image Builder fallisce, Image Builder restituisce un messaggio di errore che descrive l'errore. Image Builder restituisce anche un messaggio workflow execution ID nel messaggio di errore, come quello nell'output di esempio seguente:

Workflow Execution ID: wf-12345abc-6789-0123-abc4-567890123abc failed with reason: …

Image Builder organizza e dirige le azioni di creazione delle immagini attraverso una serie di passaggi definiti per le fasi di runtime del processo standard di creazione dell'immagine. Le fasi di compilazione e test del processo hanno ciascuna un flusso di lavoro associato. Quando Image Builder esegue un flusso di lavoro per creare o testare una nuova immagine, genera una risorsa di metadati del flusso di lavoro che tiene traccia dei dettagli di runtime.

Le immagini dei contenitori hanno un flusso di lavoro aggiuntivo che viene eseguito durante la distribuzione.

Scopri i dettagli relativi agli errori delle istanze di runtime per il tuo flusso di lavoro

Per risolvere un errore di runtime del tuo flusso di lavoro, puoi chiamare le azioni GetWorkflowExecutione ListWorkflowStepExecutionsAPI con il tuo. workflow execution ID

Rivedi i registri di runtime del flusso di lavoro
  • CloudWatch Registri Amazon

    Image Builder pubblica registri dettagliati di esecuzione del flusso di lavoro nel seguente gruppo e flusso di Image Builder Logs: CloudWatch

    LogGroup:

    /aws/imagebuilder/ImageName

    LogStream (x.x.x/x):

    ImageVersion/ImageBuildVersion

    Con CloudWatch Logs, puoi cercare i dati di registro con modelli di filtro. Per ulteriori informazioni, consulta Ricerca nei dati di log utilizzando modelli di filtro nella Amazon CloudWatch Logs User Guide.

  • AWS CloudTrail

    Tutte le attività di compilazione vengono registrate anche CloudTrail se sono attivate nel tuo account. Puoi filtrare CloudTrail gli eventi in base alla fonteimagebuilder.amazonaws.com. In alternativa, puoi cercare l'ID dell' EC2 istanza Amazon restituito nel log di esecuzione per visualizzare maggiori dettagli sull'esecuzione della pipeline.

  • Servizio Amazon Simple Storage (S3)

    Se hai specificato un nome di bucket S3 e un prefisso chiave nella configurazione dell'infrastruttura, il percorso del log di runtime della fase del flusso di lavoro segue questo schema:

    S3://S3BucketName/KeyPrefix/ImageName/ImageVersion/ImageBuildVersion/WorkflowExecutionId/StepName

    I log che invii al tuo bucket S3 mostrano i passaggi e i messaggi di errore relativi all'attività sull' EC2 istanza durante il processo di creazione dell'immagine. I log includono gli output dei log provenienti dal gestore dei componenti, le definizioni dei componenti che sono stati eseguiti e l'output dettagliato (in JSON) di tutti i passaggi eseguiti sull'istanza. Se riscontri un problema, dovresti esaminare questi file, iniziando conapplication.log, per diagnosticare la causa del problema sull'istanza.

Per impostazione predefinita, Image Builder chiude l'istanza di EC2 build o test di Amazon in esecuzione in caso di errore della pipeline. Puoi modificare le impostazioni dell'istanza per la risorsa di configurazione dell'infrastruttura utilizzata dalla pipeline, per conservare l'istanza di build o test per la risoluzione dei problemi.

Per modificare le impostazioni dell'istanza nella console, è necessario deselezionare la casella di controllo Termina istanza in caso di errore situata nella sezione Impostazioni di risoluzione dei problemi della risorsa di configurazione dell'infrastruttura.

È inoltre possibile modificare le impostazioni dell'istanza con il update-infrastructure-configuration comando in. AWS CLI Imposta il terminateInstanceOnFailure valore false nel file JSON a cui il comando fa riferimento con il --cli-input-json parametro. Per informazioni dettagliate, consultare Aggiornare una configurazione dell'infrastruttura.

Scenari per la risoluzione dei problemi

Questa sezione elenca i seguenti scenari di risoluzione dei problemi dettagliati:

Per visualizzare i dettagli di uno scenario, scegli il titolo dello scenario per espanderlo. Puoi espandere più titoli contemporaneamente.

Descrizione

La compilazione della pipeline fallisce e restituisce il codice di stato "AccessDenied: Access Denied: 403".

Causa

Tra le cause possibili sono incluse:

  • Il profilo dell'istanza non dispone delle autorizzazioni necessarie per l'accesso APIs o le risorse dei componenti.

  • Al ruolo del profilo di istanza mancano le autorizzazioni necessarie per la registrazione su Amazon S3. Più comunemente, ciò si verifica quando il ruolo del profilo dell'istanza non dispone delle PutObjectautorizzazioni per i bucket S3.

Soluzione

A seconda della causa, questo problema può essere risolto nel modo seguente:

  • Nel profilo dell'istanza mancano le policy gestite: aggiungi le politiche mancanti al ruolo del profilo dell'istanza. Quindi esegui nuovamente la pipeline.

  • Nel profilo dell'istanza mancano le autorizzazioni di scrittura per il bucket S3: aggiungi una policy al ruolo del profilo dell'istanza che conceda PutObjectle autorizzazioni di scrittura nel bucket S3. Quindi esegui nuovamente la pipeline.

Descrizione

La compilazione della pipeline fallisce con «status = 'TimedOut'» e «failure message = 'Step è scaduto mentre la fase sta verificando la disponibilità del Systems Manager Agent sulle istanze di destinazione'».

Causa

Tra le cause possibili sono incluse:

  • L'istanza lanciata per eseguire le operazioni di compilazione ed eseguire i componenti non è stata in grado di accedere all'endpoint Systems Manager.

  • Il profilo dell'istanza non dispone delle autorizzazioni richieste.

Soluzione

A seconda della possibile causa, questo problema può essere risolto nel modo seguente:

Descrizione

Quando il tipo di istanza utilizzato per creare un AMI Windows Image Builder non corrisponde al tipo di istanza utilizzato per l'avvio dall'AMI, può verificarsi un problema per cui i volumi non root sono offline all'avvio. Ciò si verifica principalmente quando l'istanza di compilazione utilizza un'architettura più recente rispetto all'istanza di avvio.

L'esempio seguente mostra cosa succede quando un'AMI Image Builder viene creata EC2 su un tipo di istanza Nitro e lanciata EC2 su un'istanza Xen:

Tipo di istanza di compilazione: m5.large (Nitro)

Tipo di istanza di avvio: t2.medium (Xen)

PS C:\Users\Administrator> get-disk Number 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

Causa

A causa delle impostazioni predefinite di Windows, i dischi appena scoperti non vengono automaticamente portati online e formattati. Quando il tipo di istanza viene modificato EC2, Windows lo considera come se venissero scoperti nuovi dischi. Ciò è dovuto alla modifica del driver sottostante.

Soluzione

Ti consigliamo di utilizzare lo stesso sistema di tipi di istanze quando crei l'AMI Windows da cui intendi eseguire l'avvio. Non includere tipi di istanze basati su sistemi diversi nella configurazione dell'infrastruttura. Se uno dei tipi di istanza specificati utilizza il sistema Nitro, tutti dovrebbero utilizzare il sistema Nitro.

Per ulteriori informazioni sulle istanze basate sul sistema Nitro, consulta Instances built on the Nitro System nella Amazon User Guide. EC2

Descrizione

Stai utilizzando un'immagine di base protetta CIS e la compilazione ha esito negativo.

Causa

Quando la /tmp directory è classificata comenoexec, può causare il fallimento di Image Builder.

Soluzione

Scegliete una posizione diversa per la cartella di lavoro nel workingDirectory campo della ricetta dell'immagine. Per ulteriori informazioni, consulta la descrizione del tipo di ImageRecipedati.

Descrizione

Systems Manager Automation mostra un errore nella fase di AssertInventoryCollection automazione.

Causa

Tu o la tua organizzazione potreste aver creato un'associazione Systems Manager State Manager che raccoglie informazioni di inventario per le EC2 istanze. Se la raccolta avanzata di metadati delle immagini è abilitata per la pipeline di Image Builder (questa è l'impostazione predefinita), Image Builder tenta di creare una nuova associazione di inventario per l'istanza di build. Tuttavia, Systems Manager non consente più associazioni di inventario per le istanze gestite e impedisce una nuova associazione se ne esiste già una. Ciò causa il fallimento dell'operazione e la creazione della pipeline non riuscita.

Soluzione

Per risolvere questo problema, disattivate la raccolta avanzata di metadati delle immagini utilizzando uno dei seguenti metodi:

  • Aggiorna la pipeline di immagini nella console per deselezionare la casella di controllo Abilita raccolta avanzata di metadati. Salva le modifiche ed esegui una build della pipeline.

    Per ulteriori informazioni sull'aggiornamento della pipeline di immagini AMI utilizzando la console EC2 Image Builder, vedere. Aggiorna le pipeline di immagini AMI dalla console Per ulteriori informazioni sull'aggiornamento della pipeline di immagini del contenitore utilizzando la console EC2 Image Builder, vedere. Aggiorna una pipeline di immagini del contenitore dalla console

  • È inoltre possibile aggiornare la pipeline di immagini con il update-image-pipeline comando contenuto in. AWS CLI Per fare ciò, includi la EnhancedImageMetadataEnabled proprietà nel tuo file JSON, impostata su. false L'esempio seguente mostra la proprietà impostata su. false

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

Per evitare che ciò accada per le nuove pipeline, deselezionate la casella di controllo Abilita raccolta avanzata di metadati quando create una nuova pipeline utilizzando la console EC2 Image Builder oppure impostate il valore della EnhancedImageMetadataEnabled proprietà nel file JSON su false quando create la pipeline utilizzando il. AWS CLI