

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à.

# Sviluppa componenti personalizzati per la tua immagine Image Builder
<a name="create-custom-components"></a>

È possibile creare componenti personalizzati per personalizzare le immagini di Image Builder in base alle specifiche esatte. Utilizza i seguenti passaggi per sviluppare componenti personalizzati per le tue ricette di immagini o contenitori di Image Builder.

1. Se desideri sviluppare il documento del componente e convalidarlo localmente, puoi installare l'applicazione AWS Task Orchestrator and Executor (AWSTOE) e configurarla sul tuo computer locale. Per ulteriori informazioni, consulta [Configurazione manuale per sviluppare componenti personalizzati con AWSTOE](toe-get-started.md).

1. Crea un documento componente che utilizzi il framework dei documenti AWSTOE dei componenti. Per ulteriori informazioni sul framework dei documenti, vedere[Usa il framework AWSTOE dei documenti dei componenti per i componenti personalizzati](toe-use-documents.md).

1. Specificate il documento del componente quando create un componente personalizzato. Per ulteriori informazioni, consulta [Crea un componente personalizzato con Image Builder](create-component.md).

**Topics**
+ [Creare un documento componente YAML per componenti personalizzati in Image Builder](create-component-yaml.md)
+ [Crea un componente personalizzato con Image Builder](create-component.md)

# Creare un documento componente YAML per componenti personalizzati in Image Builder
<a name="create-component-yaml"></a>

Per creare un componente, è necessario fornire un documento relativo al componente dell'applicazione YAML o JSON. Il documento contiene il codice che viene eseguito durante le fasi e i passaggi definiti per personalizzare l'immagine.

Alcuni esempi in questa sezione creano un componente di compilazione che richiama il modulo di `UpdateOS` azione nell'applicazione di gestione dei AWSTOE componenti. Il modulo aggiorna il sistema operativo. Per ulteriori informazioni sul modulo di `UpdateOS` azione, vedere[Aggiorna il sistema operativo](toe-action-modules.md#action-modules-updateos).

L'esempio del sistema operativo macOS utilizza il modulo di `ExecuteBash` azione per installare e verificare l'`wget`utilità. Il modulo di `UpdateOS` azione non supporta macOS. Per ulteriori informazioni sul modulo di `ExecuteBash` azione, consulta[ExecuteBash](toe-action-modules.md#action-modules-executebash). Per ulteriori informazioni sulle fasi, i passaggi e la sintassi dei documenti dei componenti AWSTOE dell'applicazione, consulta [Use documents in AWSTOE](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-use-documents.html).

**Nota**  
Image Builder determina il tipo di componente dalle fasi definite nel documento del componente come segue:  
**Build**: questo è il tipo di componente predefinito. Tutto ciò che non è classificato come componente di test è un componente di compilazione. Questo tipo di componente viene eseguito durante la *fase di creazione* dell'immagine. Se questo componente di compilazione ha una `test` fase definita, tale fase viene eseguita durante la *fase di test*.
**Test**: per qualificarsi come componente di test, il documento del componente deve includere solo una fase, denominata`test`. Per i test relativi alle configurazioni dei componenti di compilazione, ti consigliamo di non utilizzare un componente di test autonomo. Piuttosto, usa la `test` fase nel componente di compilazione associato.
Per ulteriori informazioni su come Image Builder utilizza fasi e fasi per gestire il flusso di lavoro dei componenti nel processo di creazione, vedere. [Usa i componenti per personalizzare l'immagine di Image Builder](manage-components.md)

Per creare un documento relativo al componente dell'applicazione YAML per un'applicazione di esempio, seguite i passaggi nella scheda corrispondente al sistema operativo dell'immagine. 

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

**Crea un file componente YAML**  
Usa uno strumento di modifica dei file per creare il documento componente. Gli esempi di documentazione utilizzano un file denominato`update-linux-os.yaml`, con il seguente contenuto:

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-linux-os
description: Updates Linux with the latest security updates.
schemaVersion: 1
phases:
  - name: build
    steps:
    - name: UpdateOS
      action: UpdateOS
# Document End
```

**Suggerimento**  
Usa uno strumento come questo [validatore YAML](https://jsonformatter.org/yaml-validator) online o un'estensione YAML lint nel tuo ambiente di codice per verificare che il tuo YAML sia ben formato.

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

**Crea un file componente YAML**  
Usa uno strumento di modifica dei file per creare il documento componente. Gli esempi di documentazione utilizzano un file denominato`update-windows-os.yaml`, con il seguente contenuto:

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-windows-os
description: Updates Windows with the latest security updates.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: UpdateOS
        action: UpdateOS
# Document End
```

**Suggerimento**  
Usa uno strumento come questo [validatore YAML](https://jsonformatter.org/yaml-validator) online o un'estensione YAML lint nel tuo ambiente di codice per verificare che il tuo YAML sia ben formato.

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

**Crea un file componente YAML**  
Usa uno strumento di modifica dei file per creare il documento componente. Gli esempi di documentazione utilizzano un file denominato`wget-macos.yaml`, con il seguente contenuto:

```
name: WgetInstallDocument
description: This is wget installation document.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: WgetBuildStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              PATH=/usr/local/bin:$PATH
              sudo -u ec2-user brew install wget


  - name: validate
    steps:
      - name: WgetValidateStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              function error_exit {
                echo $1
                echo "{\"failureMessage\":\"$2\"}"
                exit 1
              }

              type wget
              if [ $? -ne 0 ]; then
                error_exit "$stderr" "Wget installation failed!"
              fi

  - name: test
    steps:
      - name: WgetTestStep
        action: ExecuteBash
        inputs:
          commands:
            - wget -h
```

**Suggerimento**  
Usa uno strumento come questo [validatore YAML](https://jsonformatter.org/yaml-validator) online o un'estensione YAML lint nel tuo ambiente di codice per verificare che il tuo YAML sia ben formato.

------

# 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.

**Nota**  
Per evitare addebiti imprevisti, assicuratevi di ripulire le risorse e le pipeline che avete creato sulla base degli esempi di questa guida. Per ulteriori informazioni sull'eliminazione di risorse in Image Builder, vedere. [Eliminare risorse Image Builder obsolete o inutilizzate](delete-resources.md)