Come posso risolvere i problemi di una policy del ciclo di vita di Image Builder NON RIUSCITA oppure di una policy completata ma con immagini ancora disponibili?
La mia policy del ciclo di vita di EC2 Image Builder è nello stato NON RIUSCITA. Oppure la policy del ciclo di vita è stata completata, ma le immagini sono ancora disponibili.
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Risolvi i problemi di una policy del ciclo di vita nello stato NON RIUSCITA
Se una policy del ciclo di vita è nello stato NON RIUSCITA, esegui questo comando AWS CLI get-lifecycle-execution per verificarne il motivo:
aws imagebuilder get-lifecycle-execution --example-lifecycle-execution-id --region example-region
Nota: sostituisci example-lifecycle-execution-id con l'ID di esecuzione della policy del ciclo di vita e example-region con la tua Regione AWS.
Esempio di output:
{ "state": { "status": "FAILED", "reason": "Lifecycle execution failed. Reason: One or more resources failed." }
Per consentire a Image Builder di eseguire policy del ciclo di vita, devi utilizzare il ruolo predefinito EC2ImageBuilderLifecycleExecutionRole. Oppure crea un ruolo AWS Identity and Access Management (AWS IAM) personalizzato per la gestione del ciclo di vita di Image Builder. Se utilizzi un ruolo che non ha la configurazione richiesta, la policy del ciclo di vita ha esito negativo.
Se utilizzi un'immagine container di Amazon Elastic Container Registry (Amazon ECR), devi aggiungere il tag LifecycleExecutionAccess: EC2 Image Builder al repository Amazon ECR. Altrimenti ricevi il seguente motivo (Reason) nell'output del comando get-lifecycle-execution:
"ImageBuilder is not authorized to perform: ecr:BatchGetImage on resource"
Per assegnare un tag all'immagine container di Amazon ECR, consulta Assegna un tag a una risorsa da AWS CLI.
Risolvi i problemi di una policy del ciclo di vita completata ma con immagini ancora disponibili
Anche quando la policy del ciclo di vita viene completata, potrebbero essere ancora disponibili Amazon Machine Image (AMI), snapshot di Amazon Elastic Block Store (Amazon EBS) o immagini container.
Per risolvere il problema, esegui questo comando get-lifecycle-policy per controllare i dettagli della policy:
aws imagebuilder get-lifecycle-policy --lifecycle-policy-arn example-policy-arn --region example-region
Nota: sostituisci example-policy-arn con il nome della risorsa Amazon (ARN) della policy del ciclo di vita e example-region con la tua Regione.
Quindi controlla le seguenti configurazioni.
Verifica le condizioni delle regole del ciclo di vita
Devi configurare Image Builder per eliminare le risorse dopo il completamento della policy del ciclo di vita. Altrimenti Image Builder conserva le immagini.
Per verificare le risorse eliminate dalla policy del ciclo di vita, controlla la sezione PolicyDetails nell'output del comando get-lifecycle-policy:
"policyDetails": [ { "action": { "type": "DELETE", "includeResources": { "amis": false, "snapshots": false }
Seleziona il campo IncludeResources per identificare le AMI, gli snapshot e le immagini container contrassegnati dalla policy del ciclo di vita per l'eliminazione o per il mantenimento. Se sono contrassegnati come false, Image Builder mantiene la risorsa dopo aver eseguito la policy del ciclo di vita.
Per aggiornare le risorse eliminate da Image Builder, aggiorna la policy del ciclo di vita, quindi esegui questo comando update-lifecycle-policy:
aws imagebuilder update-lifecycle-policy --lifecycle-policy-arn example-policy-arn
Nota: sostituisci example-policy-arn con l'ARN della policy del ciclo di vita aggiornata.
In alternativa, completa i passaggi seguenti per aggiornare la policy del ciclo di vita utilizzando la console Image Builder:
- Apri la console Image Builder.
- Scegli Policy del ciclo di vita.
- Seleziona la policy.
- Scegli Regole, quindi seleziona Condizioni delle regole.
- Affinché Image Builder elimini tutte le risorse dopo il completamento della policy del ciclo di vita, seleziona Deregister associated AMIs and delete their snapshots (Annulla la registrazione delle AMI associate ed elimina i relativi snapshot) e Elimina le immagini container di ECR associate.
Verifica se le regole della policy del ciclo di vita mantengono le immagini
Per la policy del ciclo di vita Delete rules (Regole di eliminazione), puoi selezionare Per età o Per conteggio per mantenere le immagini per le ricette su cui le regole hanno effetto.
Se selezioni Per età, mantiene le immagini in base all'età. In alternativa, puoi utilizzare Mantieni almeno un'immagine per ricetta per conservare solo l'ultima immagine disponibile. Se selezioni Per conteggio, puoi utilizzare Retain a specific number of images per recipe (Mantieni un numero specifico di immagini per ricetta) per specificare il numero di immagini da mantenere.
Verifica se Image Builder conserva le immagini in base ai filtri ETÀ e CONTEGGIO.
Nel seguente esempio di output del comando get-lifecycle-policy, Image Builder elimina le immagini solo dopo 3 anni:
"filter": { "type": "AGE", "value": 3, "unit": "YEARS", "retainAtLeast": 1 }
Nel seguente esempio di output del comando get-lifecycle-policy, Image Builder conserva 4 immagini:
"filter": { "type": "COUNT", "value": 4 }
Se necessario, aggiorna i filtri Per età o Per conteggio della policy del ciclo di vita.
Puoi anche utilizzare regole di esclusione per mantenere le immagini in base ai tag. Verifica se Image Builder conserva le immagini in base alle regole di esclusione che hai impostato.
Nel seguente esempio di output del comando get-lifecycle-policy, Image Builder mantiene le immagini a cui è assegnato il tag example-tag:
"exclusionRules": { "tagMap": { "RetainImageTag": "example-tag" } }
Per eliminare le immagini con la policy del ciclo di vita, rimuovi il tag indicato in RetainImageTag dalle AMI, dagli snapshot o dalle immagini container.
Verifica l'ambito della policy del ciclo di vita
Le ricette e i tag nella scheda Ambito devono corrispondere alle risorse esistenti affinché la policy del ciclo di vita abbia effetto su tali risorse.
Se i tag e le ricette non corrispondono ad alcuna risorsa, quando esegui il comando get-lifecycle-execution ottieni il seguente output:
{ "lifecycleExecution": { "lifecycleExecutionId": "lce-#", "resourcesImpactedSummary": { "hasImpactedResources": false }
Se hasImpactedResources è false, l'istanza Amazon Elastic Compute Cloud (Amazon EC2) di runtime non ha identificato alcuna risorsa immagine da eliminare. Per risolvere il problema, assicurati che l'ambito della policy del ciclo di vita includa ricette e tag che hanno effetto sulle risorse immagine disponibili.
Controlla se hai assegnato correttamente i tag alle immagini di Image Builder
Image Builder esegue la policy del ciclo di vita in base ai tag solo per le risorse immagine di Image Builder. Non puoi utilizzare tag per AMI o ricette per l'ambito della policy del ciclo di vita. Assicurati di aver contrassegnato correttamente le risorse di Image Builder con i tag specificati nella scheda Ambito della policy del ciclo di vita.
Per assegnare un tag a un'immagine esistente, esegui questo comando tag-resource:
aws imagebuilder tag-resource --resource-arn example-image-resource-arn --tags KeyName1=Value1,KeyName2=Value2 --region example-region
Nota: sostituisci example-image-resource-arn con l'ARN dell''immagine, Value1 e Value2 con i tag e example-region con la tua Regione. Devi utilizzare AWS CLI per assegnare tag alle risorse immagine di Image Builder.
Controlla la configurazione multi-account
Per consentire a Image Builder di eseguire operazioni del ciclo di vita in un altro account AWS, crea un ruolo IAM per eseguire operazioni del ciclo di vita nell'account di destinazione.
- Argomenti
- Compute
- Lingua
- Italiano
