

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.

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

------