

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Desarrollo de componentes personalizados para su imagen de Generador de imágenes
<a name="create-custom-components"></a>

Puede crear sus propios componentes para personalizar las imágenes de Generador de imágenes de acuerdo con sus especificaciones exactas. Siga estos pasos para desarrollar componentes personalizados para sus recetas de contenedores o imágenes de Generador de imágenes.

1. Si desea desarrollar el documento de componentes y validarlo localmente, puede instalar la aplicación Ejecutor y orquestador de tareas de AWS (TOE de AWS) y configurarla en su máquina local. Para obtener más información, consulte [Configuración manual para desarrollar componentes personalizados con TOE de AWS](toe-get-started.md).

1. Cree un documento de componentes que utilice el marco de documentos de TOE de AWS componentes. Para obtener más información sobre el marco de documentos, consulte [Utilice el marco de documentos de TOE de AWS componentes para componentes personalizados](toe-use-documents.md).

1. Especifique el documento de componentes al crear un componente personalizado. Para obtener más información, consulte [Cree un componente personalizado con Generador de imágenes](create-component.md).

**Topics**
+ [Creación de un documento del componente YAML para componentes personalizados en Generador de imágenes](create-component-yaml.md)
+ [Cree un componente personalizado con Generador de imágenes](create-component.md)

# Creación de un documento del componente YAML para componentes personalizados en Generador de imágenes
<a name="create-component-yaml"></a>

Para crear un componente, debe proporcionar un documento del componente de la aplicación YAML o JSON. El documento contiene el código que se ejecuta durante las fases y los pasos que defina para personalizar la imagen.

Algunos de los ejemplos de esta sección crean un componente de compilación que llama al módulo de `UpdateOS` acción en la aplicación de administración de TOE de AWS componentes. El módulo actualiza el sistema operativo. Para obtener más información sobre el módulo de acción `UpdateOS`, consulte [Actualizar OS](toe-action-modules.md#action-modules-updateos).

El ejemplo del sistema operativo macOS usa el módulo de acción `ExecuteBash` para instalar y verificar la utilidad `wget`. El módulo de acción `UpdateOS` no es compatible con macOS. Para obtener más información sobre el módulo de acción `ExecuteBash`, consulte [ExecuteBash](toe-action-modules.md#action-modules-executebash). Para obtener más información sobre las fases, los pasos y la sintaxis de los documentos del componente de la aplicación TOE de AWS , consulte [Cómo usar documentos en TOE de AWS](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-use-documents.html).

**nota**  
Generador de imágenes determina el tipo de componente a partir de las fases definidas en el documento del componente de la siguiente manera:  
**Compilación**: este es el tipo de componente por defecto. Todo lo que no esté clasificado como componente de prueba es un componente de compilación. Este tipo de componente se ejecuta durante la *etapa de compilación* de la imagen. Si este componente de compilación tiene una fase de `test` definida, esa fase se ejecuta durante la *etapa de prueba*.
**Prueba**: para ser considerado un componente de prueba, el documento del componente debe incluir solo una fase, denominada `test`. Para las pruebas relacionadas con las configuraciones de los componentes de compilación, le recomendamos que no utilice un componente de prueba independiente. En su lugar, utilice la fase `test` en el componente de compilación asociado.
Para obtener más información sobre cómo Generador de Imágenes utiliza las etapas y fases para administrar el flujo de trabajo de los componentes en su proceso de compilación, consulte [Uso de componentes para personalizar su imagen de Generador de imágenes](manage-components.md).

Para crear un documento de componentes de una aplicación YAML para una aplicación de ejemplo, siga los pasos de la pestaña correspondiente al sistema operativo de su imagen. 

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

**Creación de un archivo de componentes YAML**  
Utilice una herramienta de edición de archivos para crear el documento de componente. Los ejemplos de documentación utilizan un archivo denominado `update-linux-os.yaml`, con el siguiente contenido:

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

**sugerencia**  
Utilice una herramienta como este [Validador YAML](https://jsonformatter.org/yaml-validator) en línea o una extensión YAML lint en su entorno de código para verificar que su YAML está bien formado.

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

**Creación de un archivo de componentes YAML**  
Utilice una herramienta de edición de archivos para crear el documento de componente. Los ejemplos de documentación utilizan un archivo denominado `update-windows-os.yaml`, con el siguiente contenido:

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

**sugerencia**  
Utilice una herramienta como este [Validador YAML](https://jsonformatter.org/yaml-validator) en línea o una extensión YAML lint en su entorno de código para verificar que su YAML está bien formado.

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

**Creación de un archivo de componentes YAML**  
Utilice una herramienta de edición de archivos para crear el documento de componente. Los ejemplos de documentación utilizan un archivo denominado `wget-macos.yaml`, con el siguiente contenido:

```
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
```

**sugerencia**  
Utilice una herramienta como este [Validador YAML](https://jsonformatter.org/yaml-validator) en línea o una extensión YAML lint en su entorno de código para verificar que su YAML está bien formado.

------

# Cree un componente personalizado con Generador de imágenes
<a name="create-component"></a>

Una vez que haya completado el documento de componentes, puede usarlo para crear un componente personalizado que puedan usar sus recetas de Generador de imágenes. Puede crear un componente personalizado desde la consola de Image Builder, desde la API o SDKs desde la línea de comandos. Para obtener más información sobre cómo crear un componente personalizado con parámetros de entrada y usarlo en sus recetas, consulte [Tutorial: creación de un documento del componente con los parámetros de entrada](tutorial-component-parameters.md).

En las siguientes secciones se muestra cómo crear componentes desde la consola o la AWS CLI.

**Topics**
+ [Creación de un componente personalizado de la consola](#create-component-ib-console)
+ [Cree un componente personalizado a partir del AWS CLI](#create-component-ib-cli)
+ [Importe un script para crear un componente desde AWS CLI](#import-component-cli)
+ [Administración automática de versiones de compilación](#auto-build-version-management)
+ [Uso de referencias de versión](#using-version-references)

## Creación de un componente personalizado de la consola
<a name="create-component-ib-console"></a>

Para crear un componente de TOE de AWS aplicación desde la consola de Image Builder, siga estos pasos:

1. Abra la consola [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder en.

1. En el panel de navegación, seleccione **Componentes**. A continuación, seleccione **Crear componente**.

1. En la página **Crear componente**, en **Detalles del componente**, introduzca lo siguiente:

   1. **Sistema operativo (SO) de imágenes**. Especifique el sistema operativo con el que es compatible el componente.

   1. **Categoría de componente**. En el menú desplegable, seleccione el tipo de componente de compilación o prueba que va a crear.

   1. **Nombre del componente**. Introduzca un nombre para el componente.

   1. **versión del componente**. Introduzca el número de versión del componente.

   1. **Descripción**. Proporcione una descripción opcional que le ayude a identificar el componente.

   1. **Descripción del cambio**. Proporcione una descripción opcional que le ayude a comprender los cambios realizados en esta versión del componente.

1. En la sección **Documento de definición**, la opción predeterminada es **Definir el contenido del documento**. El documento del componente define las acciones que Generador de Imágenes realiza en las instancias de compilación y prueba para crear su imagen.

   En el cuadro **Contenido**, introduzca el contenido del documento de componente YAML. Para empezar con un ejemplo de *Hello World* para Linux, seleccione la opción **Usar ejemplo**. Para obtener más información sobre cómo crear un documento de componente YAML o cómo copiar y pegar el ejemplo de *UpdateOS* de esa página, consulte [Creación de un documento del componente YAML para componentes personalizados en Generador de imágenes](create-component-yaml.md).

1. Tras introducir los detalles del componente, seleccione **Crear componente**.
**nota**  
Para ver el nuevo componente al crear o actualizar una receta, aplique el filtro **Owned by me** a la lista de componentes de compilación o prueba. El filtro se encuentra en la parte superior de la lista de componentes, junto al cuadro de búsqueda.

1. Para eliminar un componente, en la página **Componentes**, seleccione la casilla al componente que desea eliminar. En el menú desplegable **Acciones**, seleccione **Eliminar componente**.

**Actualización de un componente**  
Para crear una nueva versión del componente, siga estos pasos:

1. En función de dónde empiece:
   + Desde la página de la lista de **componentes**: seleccione la casilla junto al nombre del componente y, a continuación, seleccione **Crear nueva versión** en el menú **Acciones**.
   + En la página de detalles del componente: pulse el botón **Crear nueva versión** situado en la esquina superior derecha del encabezado.

1. La información del componente ya está rellenada con los valores actuales cuando aparece la página **Crear componente**. Siga los pasos de creación de un componente para actualizar el componente. Esto garantiza que introduzca una versión semántica única en la **versión del componente**. Para obtener más información sobre el control de versiones semántico para los recursos de Generador de Imágenes, consulte [Control de versiones semántico en Generador de imágenes](ibhow-semantic-versioning.md).

## Cree un componente personalizado a partir del AWS CLI
<a name="create-component-ib-cli"></a>

En esta sección, aprenderá a configurar y utilizar los comandos de Image Builder AWS CLI para crear un componente de TOE de AWS aplicación, de la siguiente manera.
+ Suba el documento de componente YAML a un bucket de S3 al que pueda hacer referencia desde la línea de comandos.
+ Cree el componente de la TOE de AWS aplicación con el **create-component** comando.
+ Enumere las versiones de los componentes con el comando **list-components** y un filtro de nombres para ver qué versiones ya existen. Puede usar el resultado para determinar cuál debe ser la próxima versión para las actualizaciones.

Para crear un componente de TOE de AWS aplicación a partir de un documento YAML de entrada, siga los pasos que coincidan con la plataforma de sistema operativo de su imagen.

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

**Almacene el documento del componente de la aplicación en Amazon S3.**

Puede usar un bucket de S3 como repositorio para el documento fuente del componente de TOE de AWS la aplicación. Para almacenar el documento del componente, siga estos pasos:
+ 

**Cargue del documento en Amazon S3**

  *Si el documento ocupa menos de 64 KB, puede omitir este paso.* Los documentos con un tamaño de 64 KB o más deben almacenarse en Amazon S3.

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

**Creación de un componente a partir del documento YAML**

Para simplificar el **create-component** comando que utiliza en el AWS CLI, cree un archivo JSON que contenga todos los parámetros de los componentes que desee pasar al comando. Incluya la ubicación del documento `update-linux-os.yaml` que creó en los pasos anteriores. El par clave-valor `uri` contiene la referencia del archivo.
**nota**  
La convención de nomenclatura de los valores de datos del archivo JSON sigue el patrón que se especifica para los parámetros de solicitud de operación de la API Image Builder. Para revisar los parámetros de solicitud de comandos de la API, consulte el comando [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) en la referencia de la *API de Generador de Imágenes de EC2*.  
Para proporcionar los valores de los datos como parámetros de la línea de comandos, consulte los nombres de los parámetros especificados en la *referencia de comandos de la AWS CLI *.

1. 

**Creación de un archivo JSON de entrada de la CLI**

   Utilice una herramienta de edición de archivos para crear un archivo llamado `create-update-linux-os-component.json`. Incluya el siguiente contenido:

   ```
   {
   	"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. 

**Creación de un componente**

   Utilice el siguiente comando para crear el componente, haciendo referencia al nombre del archivo JSON que creó en el paso anterior:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
   ```
**nota**  
Debe incluir la notación `file://` al principio de la ruta del archivo JSON.
La ruta del archivo JSON debe seguir la convención apropiada para el sistema operativo base donde se está ejecutando el comando. Por ejemplo, Windows utiliza la barra diagonal inversa (\$1) para referirse a la ruta de directorios, mientras que Linux y macOS usan la barra diagonal (/).

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

**Almacene el documento del componente de la aplicación en Amazon S3.**

Puede usar un bucket de S3 como repositorio para el documento fuente del componente de la TOE de AWS aplicación. Para almacenar el documento del componente, siga estos pasos:
+ 

**Cargue del documento en Amazon S3**

  *Si el documento ocupa menos de 64 KB, puede omitir este paso.* Los documentos con un tamaño de 64 KB o más deben almacenarse en Amazon S3.

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

**Creación de un componente a partir del documento YAML**

Para simplificar el **create-component** comando que utiliza en el AWS CLI, cree un archivo JSON que contenga todos los parámetros de los componentes que desee pasar al comando. Incluya la ubicación del documento `update-windows-os.yaml` que creó en los pasos anteriores. El par clave-valor `uri` contiene la referencia del archivo.
**nota**  
La convención de nomenclatura de los valores de datos del archivo JSON sigue el patrón que se especifica para los parámetros de solicitud de operación de la API Image Builder. Para revisar los parámetros de solicitud de comandos de la API, consulte el comando [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) en la referencia de la *API de Generador de Imágenes de EC2*.  
Para proporcionar los valores de los datos como parámetros de la línea de comandos, consulte los nombres de los parámetros especificados en la *referencia de comandos de la AWS CLI *.

1. 

**Creación de un archivo JSON de entrada de la CLI**

   Utilice una herramienta de edición de archivos para crear un archivo llamado `create-update-windows-os-component.json`. Incluya el siguiente contenido:

   ```
   {
   	"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**  
Debe incluir la notación `file://` al principio de la ruta del archivo JSON.
La ruta del archivo JSON debe seguir la convención apropiada para el sistema operativo base donde se está ejecutando el comando. Por ejemplo, Windows utiliza la barra diagonal inversa (\$1) para referirse a la ruta de directorios, mientras que Linux y macOS usan la barra diagonal (/).

1. 

**Creación de un componente**

   Utilice el siguiente comando para crear el componente, haciendo referencia al nombre del archivo JSON que creó en el paso anterior:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
   ```
**nota**  
Debe incluir la notación `file://` al principio de la ruta del archivo JSON.
La ruta del archivo JSON debe seguir la convención apropiada para el sistema operativo base donde se está ejecutando el comando. Por ejemplo, Windows utiliza la barra diagonal inversa (\$1) para referirse a la ruta de directorios, mientras que Linux y macOS usan la barra diagonal (/).

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

**Almacene el documento del componente de la aplicación en Amazon S3.**

Puede usar un bucket de S3 como repositorio para el documento fuente del componente de la TOE de AWS aplicación. Para almacenar el documento del componente, siga estos pasos:
+ 

**Cargue del documento en Amazon S3**

  *Si el documento ocupa menos de 64 KB, puede omitir este paso.* Los documentos con un tamaño de 64 KB o más deben almacenarse en Amazon S3.

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

**Creación de un componente a partir del documento YAML**

Para simplificar el **create-component** comando que utiliza en el AWS CLI, cree un archivo JSON que contenga todos los parámetros de los componentes que desee pasar al comando. Incluya la ubicación del documento `wget-macos.yaml` que creó en los pasos anteriores. El par clave-valor `uri` contiene la referencia del archivo.
**nota**  
La convención de nomenclatura de los valores de datos del archivo JSON sigue el patrón que se especifica para los parámetros de solicitud de operación de la API Image Builder. Para revisar los parámetros de solicitud de comandos de la API, consulte el comando [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) en la referencia de la *API de Generador de Imágenes de EC2*.  
Para proporcionar los valores de los datos como parámetros de la línea de comandos, consulte los nombres de los parámetros especificados en la *referencia de comandos de la AWS CLI *.

1. 

**Creación de un archivo JSON de entrada de la CLI**

   Utilice una herramienta de edición de archivos para crear un archivo llamado `install-wget-macos-component.json`. Incluya el siguiente contenido:

   ```
   {
   	"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. 

**Creación de un componente**

   Utilice el siguiente comando para crear el componente, haciendo referencia al nombre del archivo JSON que creó en el paso anterior:

   ```
   aws imagebuilder create-component --cli-input-json file://install-wget-macos-component.json
   ```
**nota**  
Debe incluir la notación `file://` al principio de la ruta del archivo JSON.
La ruta del archivo JSON debe seguir la convención apropiada para el sistema operativo base donde se está ejecutando el comando. Por ejemplo, Windows utiliza la barra diagonal inversa (\$1) para referirse a la ruta de directorios, mientras que Linux y macOS usan la barra diagonal (/).

------

### TOE de AWS el control de versiones de los componentes para las actualizaciones desde AWS CLI
<a name="component-update-cli"></a>

TOE de AWS los nombres y las versiones de los componentes están incrustados en el Amazon Resource Name (ARN) del componente, después del prefijo del componente. Cada nueva versión de un componente tiene su propio ARN único. Los pasos para crear una nueva versión son exactamente los mismos que para crear un nuevo componente, siempre que la versión semántica sea única para el nombre de ese componente. Para obtener más información sobre el control de versiones semántico para los recursos de Generador de Imágenes, consulte [Control de versiones semántico en Generador de imágenes](ibhow-semantic-versioning.md).

Para asegurarse de asignar la siguiente versión lógica, primero obtenga una lista de las versiones existentes del componente que desee cambiar. Utilice el **list-components** comando con el nombre AWS CLI y filtre por él.

En este ejemplo, filtre por el nombre del componente que creó en los ejemplos anteriores de Linux. Para mostrar el componente que ha creado, utilice el valor del parámetro `name` del archivo JSON que utilizó en el comando **create-component**.

```
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"
        }
    ]
}
```

En función de los resultados, puede determinar cuál debe ser la próxima versión.

## Importe un script para crear un componente desde AWS CLI
<a name="import-component-cli"></a>

En algunos casos, puede ser más fácil empezar con un script preexistente. En este caso, puede utilizar el siguiente ejemplo: 

En este ejemplo se supone que usted tiene un archivo llamado `import-component.json` (como se muestra). Tenga en cuenta que el archivo hace referencia directamente a un PowerShell script denominado `AdminConfig.ps1` que ya está cargado en`amzn-s3-demo-source-bucket`. Actualmente, `SHELL` es compatible con el 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"
}
```

Para crear el componente de un script importado, ejecute el siguiente comando.

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

## Administración automática de versiones de compilación
<a name="auto-build-version-management"></a>

Al crear un componente con el mismo nombre y la misma versión semántica que un componente existente, Image Builder incrementa automáticamente la versión de compilación (por ejemplo, de `/1` a`/2`, a`/3`, etc.). Esto le permite realizar actualizaciones iterativas de sus componentes sin tener que gestionar manualmente los números de versión, lo que resulta especialmente útil en CI/CD procesos e implementaciones. infrastructure-as-code Si el contenido del componente es idéntico al de la versión de compilación anterior, Image Builder vuelve `ResourceAlreadyExistsException` para evitar que los componentes duplicados consuman la cuota de servicio. 

## Uso de referencias de versión
<a name="using-version-references"></a>

Al crear o recuperar un componente, Image Builder proporciona automáticamente patrones de versión preconstruidos ARNs con caracteres comodín en el latestVersionReferences objeto. Estas referencias facilitan el uso de las versiones más recientes de sus componentes en recetas y canalizaciones sin necesidad de analizarlas manualmente. ARNs 

**Elegir la referencia de versión correcta**
+ latestVersionArn (x.x.x): utilice siempre la versión más reciente del componente.
+ atestMajorVersionArn (1.x.x): utilice las versiones secundarias y de parche más recientes dentro de una versión principal.
+ latestMinorVersionArn (1.2.x): utilice únicamente la última versión del parche.
+ latestPatchVersionArn (1.2.3): haga referencia a una versión semántica específica, pero obtenga la versión de compilación más reciente.

**nota**  
Para evitar cargos inesperados, asegúrese de limpiar los recursos y canalizaciones que haya creado a partir de los ejemplos de esta guía. Para obtener más información sobre cómo eliminar recursos en Generador de Imágenes, consulte [Eliminación de recursos de Generador de imágenes obsoletos o no utilizados](delete-resources.md).