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à.
Crea una nuova versione di una ricetta contenitore
Questa sezione mostra come creare una nuova versione di una ricetta contenitore.
Indice
Crea una nuova versione di ricetta in contenitore con la console
Creare una nuova versione di una ricetta contenitore è praticamente la stessa cosa che creare una nuova ricetta. La differenza è che alcuni dettagli sono preselezionati in base alla ricetta di base, nella maggior parte dei casi. L'elenco seguente descrive le differenze tra la creazione di una nuova ricetta e la creazione di una nuova versione di una ricetta esistente.
Dettagli della ricetta
-
Nome: non modificabile.
-
Versione: obbligatoria. Questo dettaglio non è precompilato con la versione corrente o con alcun tipo di sequenza. Immettete il numero di versione che desiderate creare nel formato major.minor.patch. Se la versione esiste già, si verifica un errore.
Immagine di base
-
Opzione Seleziona immagine: preselezionata, ma modificabile. Se modificate la scelta della fonte dell'immagine di base, potreste perdere altri dettagli che dipendono dall'opzione originale scelta.
Per visualizzare i dettagli associati alla selezione dell'immagine di base, scegliete la scheda corrispondente alla selezione.
Configurazione dell'istanza
-
ID AMI: precompilato, ma modificabile.
-
Archiviazione (volumi)
EBS volume 1 (AMI root) — Precompilato. Non è possibile modificare le selezioni Device Name, Snapshot o IOPS del volume root. Tuttavia, è possibile modificare tutte le impostazioni rimanenti, ad esempio la dimensione. Puoi anche aggiungere nuovi volumi.
Nota
Se hai specificato un'AMI di base che è stata condivisa con te da un altro account, anche le istantanee per tutti i volumi secondari specificati devono essere condivise con il tuo account.
Directory di lavoro
-
Percorso della directory di lavoro: precompilato, ma modificabile.
Componenti
Componenti: i componenti già inclusi nella ricetta vengono visualizzati nella sezione Componenti selezionati alla fine di ciascuno degli elenchi di componenti (build e test). È possibile rimuovere o riordinare i componenti selezionati in base alle proprie esigenze.
I componenti di protezione avanzata CIS non seguono le regole standard di ordinamento dei componenti nelle ricette di Image Builder. I componenti di protezione avanzata CIS funzionano sempre per ultimi per garantire che i test di benchmark vengano eseguiti rispetto all'immagine di output.
Nota
Gli elenchi dei componenti di compilazione e test mostrano i componenti disponibili in base al tipo di proprietario del componente. Per aggiungere un componente, scegli Aggiungi componenti di compilazione e seleziona il filtro di proprietà applicabile. Ad esempio, per aggiungere un componente di compilazione associato a un Marketplace AWS prodotto, seleziona
Marketplace AWS
. Si apre un pannello di selezione sul lato destro dell'interfaccia della console che elenca Marketplace AWS i componenti.Per il componente CIS, selezionate
Third party managed
.È possibile configurare le seguenti impostazioni per il componente selezionato:
-
Opzioni di controllo delle versioni: preselezionate, ma è possibile modificarle. Ti consigliamo di scegliere l'opzione Usa l'ultima versione disponibile del componente per assicurarti che le tue build di immagini utilizzino sempre la versione più recente del componente. Se devi utilizzare una versione specifica del componente nella tua ricetta, puoi scegliere Specificare la versione del componente e inserire la versione nella casella Versione del componente che appare.
-
Parametri di input: visualizza i parametri di input accettati dal componente. Il valore è precompilato con il valore della versione precedente della ricetta. Se si utilizza questo componente per la prima volta in questa ricetta ed è stato definito un valore predefinito per il parametro di input, il valore predefinito viene visualizzato nella casella Valore con testo in grigio. Se non viene immesso nessun altro valore, Image Builder utilizza il valore predefinito.
Se un parametro di input è obbligatorio, ma non ha un valore predefinito definito nel componente, è necessario fornire un valore. Image Builder non creerà la versione della ricetta se mancano dei parametri obbligatori e non è stato definito un valore predefinito.
Importante
I parametri dei componenti sono valori di testo semplice e vengono registrati. AWS CloudTrail Ti consigliamo di utilizzare AWS Secrets Manager o il AWS Systems Manager Parameter Store per archiviare i tuoi segreti. Per ulteriori informazioni su Secrets Manager, vedi Cos'è Secrets Manager? nella Guida AWS Secrets Manager per l'utente. Per ulteriori informazioni su AWS Systems Manager Parameter Store, vedere AWS Systems Manager Parameter Store nella Guida AWS Systems Manager per l'utente.
Per espandere le impostazioni per le opzioni di controllo delle versioni o i parametri di input, puoi scegliere la freccia accanto al nome dell'impostazione. Per espandere tutte le impostazioni per tutti i componenti selezionati, è possibile disattivare e attivare l'opzione Espandi tutto.
-
Modello di file Docker
-
Modello Dockerfile: precompilato, ma modificabile. È possibile specificare una qualsiasi delle seguenti variabili contestuali che Image Builder sostituisce con le informazioni di build in fase di esecuzione.
- parentImage (obbligatorio)
-
In fase di compilazione, questa variabile diventa l'immagine di base della ricetta.
Esempio:
FROM {{{ imagebuilder:parentImage }}}
- ambienti (richiesti se vengono specificati i componenti)
-
Questa variabile si risolverà in uno script che esegue i componenti.
Esempio:
{{{ imagebuilder:environments }}}
- componenti (opzionale)
-
Image Builder risolve gli script dei componenti di compilazione e test per i componenti inclusi nella ricetta del contenitore. Questa variabile può essere posizionata in qualsiasi punto del Dockerfile, dopo la variabile environment.
Esempio:
{{{ imagebuilder:components }}}
Archivio Target
-
Nome del repository di destinazione: l'archivio Amazon ECR in cui è archiviata l'immagine di output se non è specificato nessun altro repository nella configurazione di distribuzione della pipeline per la regione in cui viene eseguita la pipeline (Regione 1).
Per creare una nuova versione della ricetta del contenitore:
-
Nella parte superiore della pagina dei dettagli della ricetta del contenitore, scegli Crea nuova versione. Verrai indirizzato alla pagina Crea ricetta per le ricette in contenitore.
-
Per creare la nuova versione, apporta le modifiche, quindi scegli Crea ricetta.
Per ulteriori informazioni su come creare una ricetta contenitore quando si crea una pipeline di immagini, consulta Fase 2: Scegli la ricetta la sezione Guida introduttiva di questa guida.
Crea una ricetta in un contenitore con AWS CLI
Per creare una ricetta contenitore Image Builder con il imagebuilder
create-container-recipe
comando in AWS CLI, procedi nel seguente modo:
Prerequisiti
Prima di eseguire i comandi Image Builder in questa sezione per creare una ricetta contenitore con AWS CLI, è necessario creare i componenti che la ricetta utilizzerà. L'esempio di ricetta del contenitore riportato nel passaggio seguente si riferisce ai componenti di esempio creati nella Creare un componente personalizzato dal AWS CLI sezione di questa guida.
Dopo aver creato i componenti, o se state utilizzando componenti esistenti, prendete nota di quelli ARNs che desiderate includere nella ricetta.
-
Creazione di un file JSON di input nella CLI
È possibile fornire tutto l'input per il create-container-recipe comando con parametri di comando in linea. Tuttavia, il comando risultante può essere piuttosto lungo. Per semplificare il comando, puoi invece fornire un file JSON che contenga tutte le impostazioni delle ricette del contenitore
Nota
La convenzione di denominazione per i valori dei dati nel file JSON segue lo schema specificato per i parametri di richiesta operativa dell'API Image Builder. Per esaminare i parametri di richiesta dell'operazione API, vedere il CreateContainerRecipecomando nell'EC2 Image Builder API Reference.
Per fornire i valori dei dati come parametri della riga di comando, fate riferimento ai nomi dei parametri specificati nel AWS CLI Command Reference.
Ecco un riepilogo dei parametri di questo esempio:
-
components (array di oggetti, obbligatorio) — Contiene un array di
ComponentConfiguration
oggetti. È necessario specificare almeno un componente di build:Nota
Image Builder installa i componenti nell'ordine specificato nella ricetta. Tuttavia, i componenti di protezione avanzata CIS funzionano sempre per ultimi per garantire che i test di benchmark vengano eseguiti rispetto all'immagine di output.
-
componentARN (stringa, obbligatorio) — L'ARN del componente.
Suggerimento
Per utilizzare l'esempio per creare la tua ricetta di contenitore, sostituisci l'esempio ARNs con la ARNs per i componenti che stai utilizzando per la tua ricetta,. Questi includono Regione AWS il nome e il numero di versione di ciascuno.
parametri (matrice di oggetti): contiene una matrice di
ComponentParameter
oggetti. Se un parametro di input è obbligatorio, ma non ha un valore predefinito definito nel componente, è necessario fornire un valore. Image Builder non creerà la versione della ricetta se mancano dei parametri obbligatori e non è stato definito un valore predefinito.Importante
I parametri dei componenti sono valori di testo semplice e vengono registrati. AWS CloudTrail Ti consigliamo di utilizzare AWS Secrets Manager o il AWS Systems Manager Parameter Store per archiviare i tuoi segreti. Per ulteriori informazioni su Secrets Manager, vedi Cos'è Secrets Manager? nella Guida AWS Secrets Manager per l'utente. Per ulteriori informazioni su AWS Systems Manager Parameter Store, vedere AWS Systems Manager Parameter Store nella Guida AWS Systems Manager per l'utente.
-
name (string, required) — Il nome del parametro del componente da impostare.
-
value (array of string, obbligatorio) — Contiene una matrice di stringhe per impostare il valore per il parametro del componente denominato. Se è stato definito un valore predefinito per il componente e non viene fornito nessun altro valore, AWSTOE utilizza il valore predefinito.
-
-
-
containerType (string, required) — Il tipo di contenitore da creare. I valori validi includono.
DOCKER
-
dockerfileTemplateData(stringa) — Il modello Dockerfile utilizzato per creare l'immagine, espresso come blob di dati in linea.
-
name (string, required) — Il nome della ricetta del contenitore.
-
description (string) — La descrizione della ricetta del contenitore.
-
parentImage (string, required): immagine utilizzata dalla ricetta del contenitore come base per l'immagine personalizzata. Il valore può essere l'ARN dell'immagine di base o un ID AMI.
-
platformOverride (string): specifica la piattaforma del sistema operativo quando si utilizza un'immagine di base personalizzata.
-
SemanticVersion <major>(string, required) — La versione semantica della ricetta del contenitore specificata nel formato seguente, con valori numerici in ogni posizione per indicare una versione specifica:. <minor>. <patch>. Ad esempio, sarebbe
1.0.0
. Per ulteriori informazioni sul controllo delle versioni semantiche per le risorse di Image Builder, vedere. Versionamento semantico in Image Builder -
tags (string map) — Tag allegati alla ricetta del contenitore.
-
instanceConfiguration (oggetto): un gruppo di opzioni che possono essere utilizzate per configurare un'istanza per la creazione e il test delle immagini dei container.
-
image (string) — L'ID AMI da utilizzare come immagine di base per un'istanza di compilazione e test del contenitore. Se non specifichi questo valore, Image Builder utilizza l'AMI ottimizzata Amazon ECS appropriata come immagine di base.
-
blockDeviceMappings(matrice di oggetti) — Definisce i dispositivi a blocchi da collegare per creare un'istanza dall'AMI Image Builder specificata nel image parametro.
-
deviceName (stringa) — Il dispositivo a cui si applicano queste mappature.
-
ebs (object) — Utilizzato per gestire la configurazione specifica di Amazon EBS per questa mappatura.
-
deleteOnTermination(Boolean) — Utilizzato per configurare l'eliminazione alla chiusura del dispositivo associato.
-
criptato (booleano) — Utilizzato per configurare la crittografia del dispositivo.
-
VolumeSize (numero intero): utilizzato per sovrascrivere la dimensione del volume del dispositivo.
-
volumeType (string) — Utilizzato per sovrascrivere il tipo di volume del dispositivo.
-
-
-
-
targetRepository (oggetto, obbligatorio): l'archivio di destinazione per l'immagine del contenitore se non è specificato nessun altro repository nella configurazione di distribuzione della pipeline per la regione in cui viene eseguita la pipeline (Regione 1).
-
repositoryName (stringa, obbligatorio) — Il nome del repository del contenitore in cui è archiviata l'immagine del contenitore di output. Questo nome ha come prefisso la posizione del repository.
-
service (string, required): specifica il servizio in cui è stata registrata l'immagine.
-
-
workingDirectory (string) — La directory di lavoro da utilizzare durante i flussi di lavoro di compilazione e test.
{ "components": [ { "componentArn": "arn:aws:imagebuilder:us-east-1:123456789012:component/helloworldal2/x.x.x" } ], "containerType": "DOCKER", "description": "My Linux Docker container image", "dockerfileTemplateData": "FROM {{{ imagebuilder:parentImage }}}\n{{{ imagebuilder:environments }}}\n{{{ imagebuilder:components }}}", "name": "amazonlinux-container-recipe", "parentImage": "amazonlinux:latest", "platformOverride": "Linux", "semanticVersion": "1.0.2", "tags": { "sometag" : "Tag detail" }, "instanceConfiguration": { "image": "ami-1234567890", "blockDeviceMappings": [ { "deviceName": "/dev/xvda", "ebs": { "deleteOnTermination": true, "encrypted": false, "volumeSize": 8, "volumeType": "gp2" } } ] }, "targetRepository": { "repositoryName": "myrepo", "service": "ECR" }, "workingDirectory": "/tmp" }
-
-
Crea la ricetta
Usa il seguente comando per creare la ricetta. Fornisci il nome del file JSON che hai creato nel passaggio precedente nel
--cli-input-json
parametro:aws imagebuilder create-container-recipe --cli-input-json file://
create-container-recipe.json
Nota
-
È necessario includere l'annotazione
file://
all'inizio del percorso del file JSON. -
Il percorso del file JSON deve seguire la convenzione appropriata per il sistema operativo di base in cui si esegue il comando. Ad esempio, Windows utilizza la barra rovesciata (\) per fare riferimento al percorso della directory, mentre Linux e macOS utilizzano la barra (/).
-