View a markdown version of this page

Gestisci i flussi di lavoro di creazione, test e distribuzione per le immagini di 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à.

Gestisci i flussi di lavoro di creazione, test e distribuzione per le immagini di Image Builder

Un flusso di lavoro di immagini definisce la sequenza di passaggi che EC2 Image Builder esegue durante una fase del processo di creazione dell'immagine. Si crea un flusso di lavoro come documento YAML e lo si crea come risorsa con versione e riutilizzabile. Image Builder esegue quindi i flussi di lavoro durante la creazione, il test e la distribuzione delle immagini.

I flussi di lavoro offrono il controllo diretto sul processo di creazione delle immagini. Sei tu a decidere quali passaggi eseguire, in quale ordine, cosa fa ogni passaggio quando fallisce e se Image Builder ripristina un passaggio fallito. Puoi iniziare da un flusso di lavoro gestito da Amazon, clonarlo e personalizzarlo oppure crearne uno tuo da zero.

Vantaggi del workflow basato sulle immagini
  • Con i flussi di lavoro relativi alle immagini, hai maggiore flessibilità, visibilità e controllo sul processo di creazione delle immagini.

  • Puoi aggiungere passaggi personalizzati del flusso di lavoro quando definisci il documento del flusso di lavoro oppure puoi scegliere di utilizzare il flusso di lavoro predefinito di Image Builder.

  • È possibile escludere le fasi del flusso di lavoro che Image Builder include nei flussi di lavoro di immagini predefiniti.

  • È possibile creare flussi di lavoro solo di test che saltano completamente il processo di creazione. Puoi fare lo stesso per creare flussi di lavoro di sola compilazione o di sola distribuzione.

Nota

Non puoi modificare un flusso di lavoro esistente, ma puoi clonarlo o creare una nuova versione.

Struttura del flusso di lavoro: fasi

Image Builder organizza il processo di creazione dell'immagine in tre fasi. Ogni fase esegue un flusso di lavoro del tipo corrispondente. Le fasi vengono eseguite in un ordine fisso e una fase inizia solo dopo che la fase precedente è terminata con successo.

La tabella seguente elenca il comportamento predefinito di ogni fase. Poiché si definiscono le fasi di ogni flusso di lavoro, è possibile personalizzare l'attività di una fase.

Fasi del flusso di lavoro di Image

Ordine

Stage

Tipo di flusso di lavoro

Cosa fa (impostazione predefinita)

1

Compila

BUILD

Avvia un'istanza di compilazione, esegue i componenti di compilazione e crea un'immagine (AMI o immagine del contenitore) dall'istanza.

2

Test

TEST

Avvia un'istanza di test dalla nuova immagine, esegue i componenti di test e, facoltativamente, raccoglie i risultati della scansione delle immagini.

3

Distribution (Distribuzione)

DISTRIBUTION

Copia l'immagine nelle regioni e negli account di destinazione, modifica gli attributi dell'immagine e applica le configurazioni post-distribuzione come i modelli di avvio e le configurazioni delle licenze.

È possibile eseguire un flusso di lavoro solo per alcune fasi. Ad esempio, puoi saltare la fase di compilazione per testare o distribuire un'immagine già esistente oppure saltare la fase di test per creare e distribuire senza test. Per saltare la fase di creazione o test, ometti un flusso di lavoro di quel tipo dalla pipeline o dalla richiesta di immagine.

Nota

Il flusso di lavoro di distribuzione è facoltativo. Se lo ometti, Image Builder non salta la distribuzione: distribuisce comunque l'AMI eseguendo la configurazione di distribuzione che alleghi alla pipeline o all'immagine. Aggiungi un flusso di lavoro di distribuzione quando desideri sovrascrivere quella configurazione di distribuzione con impostazioni di distribuzione diverse o per ottenere maggiore visibilità nel processo di distribuzione. Per saltare completamente la distribuzione, fornisci una configurazione di distribuzione nulla o vuota.

Nota

Una pipeline di immagini o una richiesta di immagini può includere al massimo un flusso di lavoro di compilazione e un flusso di distribuzione. Può anche includere uno o più flussi di lavoro di test. Il numero totale di flussi di lavoro non può superare i dieci. Ad esempio, puoi abbinare un flusso di lavoro di compilazione e un flusso di lavoro di distribuzione a un massimo di otto flussi di lavoro di test.

Come viene eseguito un flusso di lavoro

Un flusso di lavoro esegue i suoi passaggi nell'ordine in cui li definisci nel documento YAML. Ogni passaggio esegue un'azione, ad esempio il lancio di un'istanza o l'esecuzione di componenti.

Risultati delle fasi

Ogni fase termina in uno dei seguenti stati.

Risultati delle fasi del flusso di lavoro

Stato

Significato

COMPLETED

La fase è stata completata con successo.

SKIPPED

Una if dichiarazione condizionale sulla fase valutatafalse, quindi Image Builder l'ha saltata.

FAILED

Il passaggio non è stato completato correttamente.

WAITING

Una WaitForAction fase viene messa in pausa, in attesa di un'azione esterna.

TIMED_OUT

Il passaggio è durato più a lungo del suo timeoutSeconds valore.

Gestione degli errori

L'onFailureattributo di ogni passaggio controlla cosa succede quando un passaggio fallisce.

  • Abort(impostazione predefinita): Image Builder non supera il passaggio, non supera il flusso di lavoro e non esegue ulteriori passaggi. Se il rollback è abilitato, il rollback inizia dalla fase non riuscita e procede a ritroso fino ai passaggi precedenti.

  • Continue— Image Builder non supera il passaggio ma esegue i passaggi rimanenti. Non si verifica alcun rollback.

Rollback

Quando un passaggio fallisce con onFailure: Abort e rollbackEnabled: true (impostazione predefinita), Image Builder ripristina i passaggi completati in ordine inverso, iniziando dal passaggio non riuscito. Non è possibile annullare tutte le azioni. Un'azione che non ha alcun rollback registra lo stato diNO_ROLLBACK.

Monitora l'esecuzione del flusso di lavoro con Amazon EventBridge

Image Builder emette EventBridge eventi Amazon durante l'esecuzione dei flussi di lavoro, così puoi reagire ai progressi e ai passaggi che richiedono attenzione. Ad esempio, un WaitForAction passaggio pubblica un evento con il tipo di EC2 Image Builder Workflow Step Waiting dettaglio nel bus eventi predefinito. Puoi indirizzare questo evento a un obiettivo come una funzione Lambda o un argomento di Amazon SNS per guidare un processo di approvazione. Per ulteriori informazioni su come funziona Image Builder EventBridge, consulta. EventBridge Integrazione di Amazon in Image Builder

Per tenere traccia dei progressi a livello di fase a livello di programmazione, utilizza le operazioniListWorkflowExecutions, GetWorkflowExecutionListWorkflowStepExecutions, e API. GetWorkflowStepExecution

Vincoli relativi alle risorse del flusso di lavoro

I documenti e le configurazioni del flusso di lavoro devono rimanere entro i seguenti limiti predefiniti.

Vincoli relativi alle risorse del flusso di lavoro

Vincolo

Limite predefinito

Note

Passaggi per documento del flusso di lavoro

15

I passaggi vengono eseguiti nell'ordine del documento.

Risultati per documento del flusso di lavoro

25

Gli output trasmettono i valori ai flussi di lavoro successivi.

Parametri per documento del flusso di lavoro

25

Ingressi che il chiamante può impostare.

Lunghezza del valore del parametro

1,024 caratteri

Valore per parametro.

Dimensione del documento in linea () data

16.000 byte

Usa l'opzione uri (Amazon S3) per documenti più grandi.

Flussi di lavoro per immagine o pipeline

10

Al massimo 1 build e 1 distribuzione, più flussi di lavoro di test, per un totale combinato di 10.

Le risorse del flusso di lavoro sono immutabili. Per modificare un flusso di lavoro, crea una nuova versione o clonala. Image Builder conserva tutte le versioni, in modo da poter tracciare il flusso di lavoro che ha prodotto ciascuna immagine.

Accesso al servizio

Per eseguire flussi di lavoro con immagini, Image Builder necessita dell'autorizzazione per eseguire le azioni del flusso di lavoro. Concedi questa autorizzazione con un ruolo di esecuzione che Image Builder assume per tuo conto. Assegna il ruolo di esecuzione come segue.

Importante

Ti consigliamo di non passare il ruolo AWSServiceRoleForImageBuilder collegato al servizio come ruolo di esecuzione. Crea invece un ruolo IAM personalizzato e allega la policy EC2ImageBuilderExecutionPolicy AWS gestita. Questa policy concede le stesse autorizzazioni di cui Image Builder ha bisogno per chiamare per tuo Servizi AWS conto. L'utilizzo di un ruolo personalizzato ti dà il pieno controllo sulle autorizzazioni utilizzate da Image Builder. Inoltre, mantiene in vigore le politiche di controllo dei servizi (SCP) e le politiche di controllo delle risorse (RCP) per le operazioni che Image Builder esegue per conto dell'utente.

  • Console: nella procedura guidata della pipeline Step 3 Definisci il processo di creazione dell'immagine, seleziona il tuo ruolo personalizzato dall'elenco dei ruoli IAM nel pannello di accesso al servizio.

  • API Image Builder: nella richiesta di CreateImage azione, specifica il tuo ruolo personalizzato come valore per il executionRole parametro.

Per creare un ruolo di esecuzione personalizzato, vedere Creazione di un ruolo per delegare le autorizzazioni a un AWS servizio nella Guida per l'AWS Identity and Access Management utente.

Usa flussi di lavoro gestiti per le tue immagini

AWS crea e gestisce flussi di lavoro gestiti. Quando utilizzi flussi di lavoro gestiti nelle tue pipeline di immagini o per la creazione di immagini una tantum, puoi selezionare l'Amazon Resource Name (ARN) del flusso di lavoro gestito che desideri utilizzare. Amazon fornisce le versioni più recenti a cui sono state applicate patch e altri aggiornamenti. Per ottenere un elenco dei flussi di lavoro gestitiElenca i flussi di lavoro delle immagini, consulta e filtra Owner = Amazon (console).

Puoi scegliere un flusso di lavoro gestito in base alla velocità di compilazione e ai requisiti di convalida. Di seguito sono riportati alcuni esempi di tipi di workflow gestiti:

Flussi di lavoro gestiti standard (impostazione predefinita)

I flussi di lavoro gestiti standard includono passaggi completi per la creazione, il test e la convalida delle immagini con controlli completi dello stato EC2.

Di seguito sono riportati i flussi di lavoro gestiti standard:

  • build-image — Flusso di lavoro di compilazione Amazon-managed AMI predefinito.

  • test-image — Flusso di lavoro di test AMI predefinito Amazon-managed .

  • build-container — Flusso di lavoro predefinito Amazon-managed per la creazione del contenitore.

  • test-container — Flusso di lavoro di test del contenitore predefinito Amazon-managed .

Flussi di lavoro gestiti con Express

I flussi di lavoro gestiti in modo rapido includono solo i passaggi essenziali e riducono i tempi di creazione delle immagini.

Di seguito sono riportati i flussi di lavoro gestiti in modo rapido:

  • express-build-image — Flusso di lavoro di compilazione di Express Amazon-managed AMI che riduce i tempi di compilazione. Attende solo lo stato di esecuzione dell'istanza anziché i controlli completi dello stato di EC2 e salta la raccolta dei metadati delle immagini.

  • express-build-container: flusso di lavoro di creazione di container Express che riduce i tempi di compilazione. Amazon-managed Attende solo lo stato di esecuzione dell'istanza anziché i controlli completi dello stato di EC2.

  • express-test-image — Flusso di lavoro di test Express Amazon-managed AMI che riduce i tempi di test. Attende solo lo stato di esecuzione dell'istanza anziché i controlli completi dello stato di EC2 e salta la raccolta dei risultati delle scansioni di sicurezza.