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
-
AMIID: precompilato, ma modificabile.
-
Archiviazione (volumi)
EBSvolume 1 (AMIroot) — Precompilato. Non è possibile modificare il volume principale, il nome del dispositivo, l'istantanea o IOPSle selezioni. Tuttavia, è possibile modificare tutte le impostazioni rimanenti, ad esempio la dimensione. Puoi anche aggiungere nuovi volumi.
Nota
Se hai specificato una base AMI 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.
CISi componenti di indurimento non seguono le regole standard di ordinamento dei componenti nelle ricette di Image Builder. I componenti di CIS protezione avanzata 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 o aggiornare componenti per la tua ricetta, seleziona il tipo di proprietario del componente che stai cercando. Ad esempio, se desideri aggiungere un componente associato a un'immagine di base a cui ti sei abbonato Marketplace AWS, selezionalo
Third party managed
dall'elenco dei tipi di proprietario, accanto alla barra di ricerca.Puoi 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 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 Dockerfile
-
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 ovunque nel Dockerfile, dopo la variabile environment.
Esempio:
{{{ imagebuilder:components }}}
Repository Target
-
Nome del repository di destinazione: il ECR repository Amazon 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 contenitore con il 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.
-
Create un JSON file CLI di input
È 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, potete invece fornire un JSON file che contenga tutte le impostazioni delle ricette del contenitore
Nota
La convenzione di denominazione per i valori dei dati nel JSON file segue lo schema specificato per i parametri della richiesta di azione Image API Builder. Per esaminare i parametri di richiesta del API comando, vedere il CreateContainerRecipecomando nell'EC2Image 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 CIS avanzata vengono sempre eseguiti per ultimi per garantire che i test di benchmark vengano eseguiti rispetto all'immagine di output.
-
component ARN (string, required) — Il componente. ARN
Suggerimento
Per utilizzare l'esempio per creare la tua ricetta per il contenitore, sostituisci l'esempio ARNs con quello 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 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 è 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(stringa, obbligatoria): immagine utilizzata dalla ricetta del contenitore come base per l'immagine personalizzata. Il valore può essere l'immagine di base ARN o un AMI ID.
-
platformOverride(stringa): specifica la piattaforma del sistema operativo quando si utilizza un'immagine di base personalizzata.
-
semanticVersion<major>(stringa, obbligatoria) — 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'AMIID da utilizzare come immagine di base per un'istanza di compilazione e test del contenitore. Se non specifichi questo valore, Image Builder utilizza l'immagine Amazon ECS ottimizzata appropriata AMI come immagine di base.
-
blockDeviceMappings(matrice di oggetti) — Definisce i dispositivi a blocchi da collegare per creare un'istanza dall'Image Builder AMI specificato nel image parametro.
-
deviceName(stringa) — Il dispositivo a cui si applicano queste mappature.
-
ebs (object) — Utilizzato per gestire la configurazione EBS specifica di Amazon 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(stringa) — 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 JSON file 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 la
file://
notazione all'inizio del percorso del JSON file. -
Il percorso del JSON file deve seguire la convenzione appropriata per il sistema operativo di base su cui viene eseguito il comando. Ad esempio, Windows utilizza la barra rovesciata (\) per fare riferimento al percorso della directory e Linux usa la barra (/).
-