

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 un componente personalizzato con Image Builder
<a name="create-component"></a>

Dopo aver completato il documento del componente, è possibile utilizzarlo per creare un componente personalizzato utilizzabile nelle ricette di Image Builder. È possibile creare un componente personalizzato dalla console Image Builder, dall'API o SDKs dalla riga di comando. Per ulteriori informazioni su come creare un componente personalizzato con parametri di input e utilizzarlo nelle ricette, vedere[Tutorial: creare un componente personalizzato con parametri di input](tutorial-component-parameters.md).

Le sezioni seguenti mostrano come creare componenti dalla console o da AWS CLI.

**Topics**
+ [Crea un componente personalizzato dalla console](#create-component-ib-console)
+ [Creare un componente personalizzato dal AWS CLI](#create-component-ib-cli)
+ [Importa uno script per creare un componente da AWS CLI](#import-component-cli)
+ [Gestione automatica delle versioni di build](#auto-build-version-management)
+ [Utilizzo dei riferimenti alle versioni](#using-version-references)

## Crea un componente personalizzato dalla console
<a name="create-component-ib-console"></a>

Per creare un componente AWSTOE dell'applicazione dalla console Image Builder, procedi nel seguente modo:

1. Apri la console EC2 Image Builder [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)all'indirizzo.

1. Seleziona **Componenti** dal pannello di navigazione. Quindi seleziona **Crea componente**.

1. Nella pagina **Crea componente**, in **Dettagli del componente**, inserisci quanto segue:

   1. **Image Operating System (OS)**. Specificare il sistema operativo con cui il componente è compatibile.

   1. **Categoria di componenti**. Dal menu a discesa, seleziona il tipo di componente di build o test che stai creando.

   1. **Nome del componente**. Immettete un nome per il componente.

   1. **Versione del componente**. Immettere il numero di versione del componente.

   1. **Descrizione**. Fornisci una descrizione opzionale per aiutarti a identificare il componente.

   1. **Modifica la descrizione**. Fornisci una descrizione facoltativa per aiutarti a comprendere le modifiche apportate a questa versione del componente.

1. Nella sezione **Definizione del documento**, l'opzione predefinita è **Definisci il contenuto del documento**. Il documento del componente definisce le azioni che Image Builder esegue sulle istanze di compilazione e test per creare l'immagine.

   Nella casella **Contenuto**, inserite il contenuto del documento del componente YAML. Per iniziare con un esempio di *Hello World* per Linux, scegli l'opzione **Usa esempio**. Per ulteriori informazioni su come creare un documento componente YAML o per copiare e incollare l'esempio *UpdateOS* da quella pagina, consulta. [Creare un documento componente YAML per componenti personalizzati in Image Builder](create-component-yaml.md)

1. **Dopo aver inserito i dettagli del componente, seleziona Crea componente.**
**Nota**  
Per vedere il nuovo componente quando crei o aggiorni una ricetta, applica il filtro **Owned by me** all'elenco dei componenti di compilazione o test. Il filtro si trova nella parte superiore dell'elenco dei componenti, accanto alla casella di ricerca.

1. Per eliminare un componente, nella pagina **Componenti**, seleziona la casella di controllo accanto al componente che desideri eliminare. Dal menu a discesa **Azioni**, seleziona **Elimina componente**.

**Aggiorna un componente**  
Per creare una nuova versione del componente, procedi nel seguente modo:

1. A seconda di dove inizi:
   + Dalla pagina dell'elenco dei **componenti**: seleziona la casella di controllo accanto al nome del componente, quindi seleziona **Crea nuova versione** dal menu **Azioni**.
   + Dalla pagina dei dettagli del componente: scegli il pulsante **Crea nuova versione** nell'angolo in alto a destra dell'intestazione.

1. Le informazioni sul componente sono già compilate con i valori correnti quando viene visualizzata la pagina **Crea componente**. Segui la procedura di creazione di un componente per aggiornare il componente. Ciò garantisce l'immissione di una versione semantica unica nella **versione Component**. Per ulteriori informazioni sul controllo delle versioni semantiche per le risorse di Image Builder, vedere. [Versionamento semantico in Image Builder](ibhow-semantic-versioning.md)

## Creare un componente personalizzato dal AWS CLI
<a name="create-component-ib-cli"></a>

In questa sezione, imparerete come configurare e utilizzare i comandi di Image Builder AWS CLI per creare un componente AWSTOE dell'applicazione, come segue.
+ Carica il documento del componente YAML in un bucket S3 a cui puoi fare riferimento dalla riga di comando.
+ Crea il componente dell' AWSTOE applicazione con il comando. **create-component**
+ Elenca le versioni dei componenti con il **list-components** comando e un filtro dei nomi per vedere quali versioni esistono già. È possibile utilizzare l'output per determinare quale dovrebbe essere la versione successiva per gli aggiornamenti.

Per creare un componente AWSTOE dell'applicazione da un documento YAML di input, seguite i passaggi corrispondenti alla piattaforma del sistema operativo di immagine.

------
#### [ Linux ]

**Archivia il documento relativo ai componenti dell'applicazione in Amazon S3**

Puoi utilizzare un bucket S3 come repository per il documento sorgente dei componenti AWSTOE dell'applicazione. Per archiviare il documento del componente, procedi nel seguente modo:
+ 

**Carica il documento su Amazon S3**

  *Se il documento è più piccolo di 64 KB, puoi saltare questo passaggio.* I documenti di dimensioni pari o superiori a 64 KB devono essere archiviati in Amazon S3.

  ```
  aws s3 cp update-linux-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml
  ```

**Crea un componente dal documento YAML**

Per semplificare il **create-component** comando utilizzato in AWS CLI, create un file JSON che contenga tutti i parametri del componente che desiderate passare al comando. Includi la posizione del `update-linux-os.yaml` documento creato in precedenza. La coppia `uri` chiave-valore contiene il riferimento al file.
**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 del comando API, consulta il [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)comando nel riferimento all'API *EC2 Image Builder*.  
Per fornire i valori dei dati come parametri della riga di comando, fate riferimento ai nomi dei parametri specificati nel *AWS CLI Command* Reference.

1. 

**Creazione di un file JSON di input nella CLI**

   Utilizzate uno strumento di modifica dei file per creare un file denominato`create-update-linux-os-component.json`. Includi i seguenti contenuti:

   ```
   {
   	"name": "update-linux-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Linux operating system",
   	"changeDescription": "Initial version.",
   	"platform": "Linux",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```

1. 

**Crea il componente**

   Utilizzate il seguente comando per creare il componente, facendo riferimento al nome del file JSON creato nel passaggio precedente:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.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 (\$1) per fare riferimento al percorso della directory, mentre Linux e macOS utilizzano la barra (/).

------
#### [ Windows ]

**Archivia il documento relativo ai componenti dell'applicazione in Amazon S3**

Puoi utilizzare un bucket S3 come repository per il documento sorgente dei componenti AWSTOE dell'applicazione. Per archiviare il documento del componente, procedi nel seguente modo:
+ 

**Carica il documento su Amazon S3**

  *Se il documento è più piccolo di 64 KB, puoi saltare questo passaggio.* I documenti di dimensioni pari o superiori a 64 KB devono essere archiviati in Amazon S3.

  ```
  aws s3 cp update-windows-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml
  ```

**Crea un componente dal documento YAML**

Per semplificare il **create-component** comando utilizzato in AWS CLI, create un file JSON che contenga tutti i parametri del componente che desiderate passare al comando. Includi la posizione del `update-windows-os.yaml` documento creato in precedenza. La coppia `uri` chiave-valore contiene il riferimento al file.
**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 del comando API, consulta il [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)comando nel riferimento all'API *EC2 Image Builder*.  
Per fornire i valori dei dati come parametri della riga di comando, fate riferimento ai nomi dei parametri specificati nel *AWS CLI Command* Reference.

1. 

**Creazione di un file JSON di input nella CLI**

   Utilizzate uno strumento di modifica dei file per creare un file denominato`create-update-windows-os-component.json`. Includi i seguenti contenuti:

   ```
   {
   	"name": "update-windows-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Windows operating system.",
   	"changeDescription": "Initial version.",
   	"platform": "Windows",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```
**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 (\$1) per fare riferimento al percorso della directory, mentre Linux e macOS utilizzano la barra (/).

1. 

**Crea il componente**

   Utilizzate il seguente comando per creare il componente, facendo riferimento al nome del file JSON creato nel passaggio precedente:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.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 (\$1) per fare riferimento al percorso della directory, mentre Linux e macOS utilizzano la barra (/).

------
#### [ macOS ]

**Archivia il documento relativo ai componenti dell'applicazione in Amazon S3**

Puoi utilizzare un bucket S3 come repository per il documento sorgente dei componenti AWSTOE dell'applicazione. Per archiviare il documento del componente, procedi nel seguente modo:
+ 

**Carica il documento su Amazon S3**

  *Se il documento è più piccolo di 64 KB, puoi saltare questo passaggio.* I documenti di dimensioni pari o superiori a 64 KB devono essere archiviati in Amazon S3.

  ```
  aws s3 cp wget-macos.yaml s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml
  ```

**Crea un componente dal documento YAML**

Per semplificare il **create-component** comando utilizzato in AWS CLI, create un file JSON che contenga tutti i parametri del componente che desiderate passare al comando. Includi la posizione del `wget-macos.yaml` documento creato in precedenza. La coppia `uri` chiave-valore contiene il riferimento al file.
**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 del comando API, consulta il [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)comando nel riferimento all'API *EC2 Image Builder*.  
Per fornire i valori dei dati come parametri della riga di comando, fate riferimento ai nomi dei parametri specificati nel *AWS CLI Command* Reference.

1. 

**Creazione di un file JSON di input nella CLI**

   Utilizzate uno strumento di modifica dei file per creare un file denominato`install-wget-macos-component.json`. Includi i seguenti contenuti:

   ```
   {
   	"name": "install install-wget-macos-component",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that installs and verifies the wget utility on macOS.",
   	"changeDescription": "Initial version.",
   	"platform": "macOS",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "install-software"
   	}
   }
   ```

1. 

**Crea il componente**

   Utilizzate il seguente comando per creare il componente, facendo riferimento al nome del file JSON creato nel passaggio precedente:

   ```
   aws imagebuilder create-component --cli-input-json file://install-wget-macos-component.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 (\$1) per fare riferimento al percorso della directory, mentre Linux e macOS utilizzano la barra (/).

------

### AWSTOE controllo delle versioni dei componenti per gli aggiornamenti da AWS CLI
<a name="component-update-cli"></a>

AWSTOE i nomi e le versioni dei componenti sono incorporati nell'Amazon Resource Name (ARN) del componente, dopo il prefisso del componente. Ogni nuova versione di un componente ha il proprio ARN univoco. I passaggi per creare una nuova versione sono esattamente gli stessi dei passaggi per creare un nuovo componente, purché la versione semantica sia unica per il nome del componente. Per ulteriori informazioni sul controllo delle versioni semantiche per le risorse di Image Builder, vedere. [Versionamento semantico in Image Builder](ibhow-semantic-versioning.md)

Per assicurarvi di assegnare la versione logica successiva, procuratevi innanzitutto un elenco delle versioni esistenti del componente che desiderate modificare. Utilizzate il **list-components** comando con AWS CLI, e filtrate in base al nome.

In questo esempio, si filtra in base al nome del componente creato negli esempi precedenti di Linux. Per elencare il componente creato, utilizzate il valore del `name` parametro dal file JSON utilizzato nel **create-component** comando.

```
aws imagebuilder list-components --filters name="name",values="update-linux-os"	
{
    "requestId": "123a4567-b890-123c-45d6-ef789ab0cd1e",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.0",
            "name": "update-linux-os",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.1",
            "name": "update-linux-os",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

In base ai risultati, è possibile determinare quale dovrebbe essere la versione successiva.

## Importa uno script per creare un componente da AWS CLI
<a name="import-component-cli"></a>

Per alcuni scenari, potrebbe essere più semplice iniziare con uno script preesistente. Per questo scenario, è possibile utilizzare l'esempio seguente. 

Questo esempio presuppone che sia presente un file chiamato `import-component.json` (come illustrato). Notate che il file fa riferimento direttamente a uno PowerShell script chiamato `AdminConfig.ps1` che è già stato caricato in`amzn-s3-demo-source-bucket`. Attualmente, `SHELL` è supportato per il componente`format`. 

```
{
"name": "MyImportedComponent",
"semanticVersion": "1.0.0",
"description": "An example of how to import a component",
"changeDescription": "First commit message.",
"format": "SHELL",
"platform": "Windows",
"type": "BUILD",
"uri": "s3://amzn-s3-demo-source-bucket/AdminConfig.ps1",
"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/60763706-b131-418b-8f85-3420912f020c"
}
```

Per creare il componente da uno script importato, eseguite il comando seguente.

```
aws imagebuilder import-component --cli-input-json file://import-component.json
```

## Gestione automatica delle versioni di build
<a name="auto-build-version-management"></a>

Quando create un componente con lo stesso nome e la stessa versione semantica di un componente esistente, Image Builder incrementa automaticamente la versione di build (ad esempio, `/1` from `/2` to, `/3` to e così via). Ciò consente di effettuare aggiornamenti iterativi ai componenti senza gestire manualmente i numeri di versione, il che è particolarmente utile nelle pipeline e nelle CI/CD distribuzioni. infrastructure-as-code Se il contenuto del componente è identico alla versione di build precedente, Image Builder torna `ResourceAlreadyExistsException` per evitare che componenti duplicati consumino la quota di servizio. 

## Utilizzo dei riferimenti alle versioni
<a name="using-version-references"></a>

Quando create o recuperate un componente, Image Builder fornisce automaticamente nell'oggetto modelli di versione ARNs precostruiti con caratteri jolly. latestVersionReferences Questi riferimenti semplificano l'utilizzo delle versioni più recenti dei componenti nelle ricette e nelle pipeline senza eseguire l'analisi manuale. ARNs 

**Scelta del riferimento di versione corretto**
+ latestVersionArn (x.x.x): utilizzate sempre la versione più recente in assoluto del componente.
+ atestMajorVersionArn (1.x.x): utilizza le versioni secondarie e le patch più recenti all'interno di una versione principale.
+ latestMinorVersionArn (1.2.x): utilizza solo la versione patch più recente.
+ latestPatchVersionArn (1.2.3) - Fai riferimento a una versione semantica specifica, ma ottieni l'ultima versione di build.