

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Développez des composants personnalisés pour votre image Image Builder
<a name="create-custom-components"></a>

Vous pouvez créer vos propres composants pour personnaliser vos images Image Builder en fonction de vos spécifications exactes. Suivez les étapes ci-dessous pour développer des composants personnalisés pour votre image Image Builder ou vos recettes de conteneur.

1. Si vous souhaitez développer votre document de composant et le valider localement, vous pouvez installer l'application AWS Task Orchestrator and Executor (AWSTOE) et la configurer sur votre machine locale. Pour de plus amples informations, veuillez consulter [Configuration manuelle pour développer des composants personnalisés avec AWSTOE](toe-get-started.md).

1. Créez un document de composant qui utilise le cadre de documentation du AWSTOE composant. Pour plus d'informations sur le cadre documentaire, consultez[Utiliser le cadre de documentation des AWSTOE composants pour les composants personnalisés](toe-use-documents.md).

1. Spécifiez le document de votre composant lorsque vous créez un composant personnalisé. Pour de plus amples informations, veuillez consulter [Création d'un composant personnalisé avec Image Builder](create-component.md).

**Topics**
+ [Création d'un document de composant YAML pour les composants personnalisés dans Image Builder](create-component-yaml.md)
+ [Création d'un composant personnalisé avec Image Builder](create-component.md)

# Création d'un document de composant YAML pour les composants personnalisés dans Image Builder
<a name="create-component-yaml"></a>

Pour créer un composant, vous devez fournir un document de composant d'application YAML ou JSON. Le document contient le code qui s'exécute pendant les phases et les étapes que vous définissez pour personnaliser votre image.

Certains des exemples présentés dans cette section créent un composant de génération qui appelle le module `UpdateOS` d'action dans l'application de gestion des AWSTOE composants. Le module met à jour le système d'exploitation. Pour plus d'informations sur le module `UpdateOS` d'action, consultez[Mettre à jour le système d'exploitation](toe-action-modules.md#action-modules-updateos).

L'exemple du système d'exploitation macOS utilise le module `ExecuteBash` d'action pour installer et vérifier l'`wget`utilitaire. Le module `UpdateOS` d'action n'est pas compatible avec macOS. Pour plus d'informations sur le module `ExecuteBash` d'action, consultez[ExecuteBash](toe-action-modules.md#action-modules-executebash). Pour plus d'informations sur les phases, les étapes et la syntaxe des documents des composants de AWSTOE l'application, voir [Utiliser des documents dans AWSTOE](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-use-documents.html).

**Note**  
Image Builder détermine le type de composant à partir des phases définies dans le document du composant comme suit :  
**Construire** — Il s'agit du type de composant par défaut. Tout ce qui n'est pas classé comme composant de test est un composant de construction. Ce type de composant s'exécute pendant la *phase de création* de l'image. Si une `test` phase est définie pour ce composant de construction, celle-ci s'exécute pendant la phase de *test*.
**Test** — Pour être considéré comme un composant de test, le document du composant ne doit inclure qu'une seule phase, nommée`test`. Pour les tests liés à la configuration des composants de génération, nous vous recommandons de ne pas utiliser de composant de test autonome. Utilisez plutôt la `test` phase dans le composant de construction associé.
Pour plus d'informations sur la manière dont Image Builder utilise les étapes et les phases pour gérer le flux de travail des composants dans son processus de création, consultez[Utilisez des composants pour personnaliser votre image Image Builder](manage-components.md).

Pour créer un document de composant d'application YAML pour un exemple d'application, suivez les étapes de l'onglet correspondant à votre système d'exploitation d'image. 

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

**Création d'un fichier de composant YAML**  
Utilisez un outil d'édition de fichiers pour créer votre document de composant. Les exemples de documentation utilisent un fichier nommé`update-linux-os.yaml`, dont le contenu est le suivant :

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

**Astuce**  
Utilisez un outil tel que ce [validateur YAML](https://jsonformatter.org/yaml-validator) en ligne ou une extension YAML lint dans votre environnement de code pour vérifier que votre code YAML est bien formé.

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

**Création d'un fichier de composant YAML**  
Utilisez un outil d'édition de fichiers pour créer votre document de composant. Les exemples de documentation utilisent un fichier nommé`update-windows-os.yaml`, dont le contenu est le suivant :

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

**Astuce**  
Utilisez un outil tel que ce [validateur YAML](https://jsonformatter.org/yaml-validator) en ligne ou une extension YAML lint dans votre environnement de code pour vérifier que votre code YAML est bien formé.

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

**Création d'un fichier de composant YAML**  
Utilisez un outil d'édition de fichiers pour créer votre document de composant. Les exemples de documentation utilisent un fichier nommé`wget-macos.yaml`, dont le contenu est le suivant :

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

**Astuce**  
Utilisez un outil tel que ce [validateur YAML](https://jsonformatter.org/yaml-validator) en ligne ou une extension YAML lint dans votre environnement de code pour vérifier que votre code YAML est bien formé.

------

# Création d'un composant personnalisé avec Image Builder
<a name="create-component"></a>

Une fois que vous avez terminé le document de composant, vous pouvez l'utiliser pour créer un composant personnalisé que vos recettes Image Builder peuvent utiliser. Vous pouvez créer un composant personnalisé à partir de la console Image Builder, de l'API ou SDKs de la ligne de commande. Pour plus d'informations sur la façon de créer un composant personnalisé avec des paramètres d'entrée et de l'utiliser dans vos recettes, consultez[Tutoriel : Création d'un composant personnalisé avec des paramètres d'entrée](tutorial-component-parameters.md).

Les sections suivantes expliquent comment créer des composants à partir de la console ou du AWS CLI.

**Topics**
+ [Création d'un composant personnalisé depuis la console](#create-component-ib-console)
+ [Créez un composant personnalisé à partir du AWS CLI](#create-component-ib-cli)
+ [Importez un script pour créer un composant à partir du AWS CLI](#import-component-cli)
+ [Gestion automatique des versions de build](#auto-build-version-management)
+ [Utilisation des références de version](#using-version-references)

## Création d'un composant personnalisé depuis la console
<a name="create-component-ib-console"></a>

Pour créer un composant d' AWSTOE application à partir de la console Image Builder, procédez comme suit :

1. Ouvrez la console [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder à l'adresse.

1. Sélectionnez **Composants** dans le volet de navigation. Sélectionnez ensuite **Créer un composant**.

1. Sur la page **Créer un composant**, sous **Détails du composant**, entrez ce qui suit :

   1. **Système d'exploitation d'image (OS)**. Spécifiez le système d'exploitation avec lequel le composant est compatible.

   1. **Catégorie de composant**. Dans le menu déroulant, sélectionnez le type de composant de construction ou de test que vous créez.

   1. **Nom du composant**. Entrez un nom pour le composant.

   1. **Version du composant**. Entrez le numéro de version du composant.

   1. **Description**. Fournissez une description facultative pour vous aider à identifier le composant.

   1. **Modifier la description**. Fournissez une description facultative pour vous aider à comprendre les modifications apportées à cette version du composant.

1. Dans la section **Définition du document**, l'option par défaut est **Définir le contenu du document**. Le document du composant définit les actions qu'Image Builder exécute sur les instances de génération et de test pour créer votre image.

   Dans le champ **Contenu**, entrez le contenu du document de votre composant YAML. Pour commencer par un exemple de *Hello World* pour Linux, choisissez l'option **Utiliser un exemple**. Pour en savoir plus sur la création d'un document de composant YAML ou sur le copier-coller de l'exemple *UpdateOS* à partir de cette page, consultez. [Création d'un document de composant YAML pour les composants personnalisés dans Image Builder](create-component-yaml.md)

1. Après avoir saisi les détails du composant, sélectionnez **Créer un composant**.
**Note**  
Pour voir votre nouveau composant lorsque vous créez ou mettez à jour une recette, appliquez le filtre **Owned by me** à la liste des composants de construction ou de test. Le filtre se trouve en haut de la liste des composants, à côté du champ de recherche.

1. Pour supprimer un composant, sur la page **Composants**, cochez la case à côté du composant que vous souhaitez supprimer. Dans le menu déroulant **Actions**, sélectionnez **Supprimer le composant**.

**Mettre à jour un composant**  
Pour créer une nouvelle version de composant, procédez comme suit :

1. En fonction de votre point de départ :
   + Sur la page de liste des **composants** : cochez la case à côté du nom du composant, puis sélectionnez **Créer une nouvelle version** dans le menu **Actions**.
   + Sur la page détaillée du composant : cliquez sur le bouton **Créer une nouvelle version** dans le coin supérieur droit de l'en-tête.

1. Les informations du composant sont déjà renseignées avec les valeurs actuelles lorsque la page **Créer un composant** s'affiche. Suivez les étapes de création d'un composant pour le mettre à jour. Cela garantit que vous entrez une version sémantique unique dans la version du **composant**. Pour en savoir plus sur le versionnement sémantique des ressources Image Builder, consultez. [Versionnage sémantique dans Image Builder](ibhow-semantic-versioning.md)

## Créez un composant personnalisé à partir du AWS CLI
<a name="create-component-ib-cli"></a>

Dans cette section, vous allez apprendre à configurer et à utiliser les commandes Image Builder AWS CLI pour créer un composant d' AWSTOE application, comme suit.
+ Téléchargez le document de votre composant YAML dans un compartiment S3 auquel vous pouvez faire référence depuis la ligne de commande.
+ Créez le composant AWSTOE d'application à l'aide de la **create-component** commande.
+ Répertoriez les versions des composants à l'aide de la **list-components** commande et d'un filtre de nom pour voir quelles versions existent déjà. Vous pouvez utiliser le résultat pour déterminer quelle sera la prochaine version pour les mises à jour.

Pour créer un composant d' AWSTOE application à partir d'un document YAML d'entrée, suivez les étapes correspondant à la plate-forme de votre système d'exploitation d'image.

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

**Stockez le document relatif aux composants de votre application dans Amazon S3**

Vous pouvez utiliser un compartiment S3 comme référentiel pour le document source des composants de votre AWSTOE application. Pour enregistrer le document de votre composant, procédez comme suit :
+ 

**Téléchargez le document sur Amazon S3**

  *Si la taille de votre document est inférieure à 64 Ko, vous pouvez ignorer cette étape.* Les documents d'une taille supérieure ou égale à 64 Ko doivent être stockés dans Amazon S3.

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

**Création d'un composant à partir du document YAML**

Pour rationaliser la **create-component** commande que vous utilisez dans le AWS CLI, créez un fichier JSON contenant tous les paramètres de composant que vous souhaitez transmettre à la commande. Indiquez l'emplacement du `update-linux-os.yaml` document que vous avez créé précédemment. La paire `uri` clé-valeur contient la référence du fichier.
**Note**  
La convention de dénomination des valeurs de données dans le fichier JSON suit le modèle spécifié pour les paramètres de demande d'opération de l'API Image Builder. Pour consulter les paramètres de demande de commande d'API, consultez la [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)commande dans le manuel de référence de l'*API EC2 Image Builder*.  
Pour fournir les valeurs de données sous forme de paramètres de ligne de commande, reportez-vous aux noms de paramètres spécifiés dans la *référence des AWS CLI commandes*.

1. 

**Créer un fichier JSON d'entrée CLI**

   Utilisez un outil d'édition de fichiers pour créer un fichier nommé`create-update-linux-os-component.json`. Incluez le contenu suivant :

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

**Création du composant**

   Utilisez la commande suivante pour créer le composant, en faisant référence au nom du fichier JSON que vous avez créé à l'étape précédente :

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
   ```
**Note**  
Vous devez inclure l'option `file://` au début du chemin du fichier JSON.
Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\$1) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

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

**Stockez le document relatif aux composants de votre application dans Amazon S3**

Vous pouvez utiliser un compartiment S3 comme référentiel pour le document source des composants de votre AWSTOE application. Pour enregistrer le document de votre composant, procédez comme suit :
+ 

**Téléchargez le document sur Amazon S3**

  *Si la taille de votre document est inférieure à 64 Ko, vous pouvez ignorer cette étape.* Les documents d'une taille supérieure ou égale à 64 Ko doivent être stockés dans Amazon S3.

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

**Création d'un composant à partir du document YAML**

Pour rationaliser la **create-component** commande que vous utilisez dans le AWS CLI, créez un fichier JSON contenant tous les paramètres de composant que vous souhaitez transmettre à la commande. Indiquez l'emplacement du `update-windows-os.yaml` document que vous avez créé précédemment. La paire `uri` clé-valeur contient la référence du fichier.
**Note**  
La convention de dénomination des valeurs de données dans le fichier JSON suit le modèle spécifié pour les paramètres de demande d'opération de l'API Image Builder. Pour consulter les paramètres de demande de commande d'API, consultez la [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)commande dans le manuel de référence de l'*API EC2 Image Builder*.  
Pour fournir les valeurs de données sous forme de paramètres de ligne de commande, reportez-vous aux noms de paramètres spécifiés dans la *référence des AWS CLI commandes*.

1. 

**Créer un fichier JSON d'entrée CLI**

   Utilisez un outil d'édition de fichiers pour créer un fichier nommé`create-update-windows-os-component.json`. Incluez le contenu suivant :

   ```
   {
   	"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"
   	}
   }
   ```
**Note**  
Vous devez inclure l'option `file://` au début du chemin du fichier JSON.
Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\$1) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

1. 

**Création du composant**

   Utilisez la commande suivante pour créer le composant, en faisant référence au nom du fichier JSON que vous avez créé à l'étape précédente :

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
   ```
**Note**  
Vous devez inclure l'option `file://` au début du chemin du fichier JSON.
Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\$1) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

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

**Stockez le document relatif aux composants de votre application dans Amazon S3**

Vous pouvez utiliser un compartiment S3 comme référentiel pour le document source des composants de votre AWSTOE application. Pour enregistrer le document de votre composant, procédez comme suit :
+ 

**Téléchargez le document sur Amazon S3**

  *Si la taille de votre document est inférieure à 64 Ko, vous pouvez ignorer cette étape.* Les documents d'une taille supérieure ou égale à 64 Ko doivent être stockés dans Amazon S3.

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

**Création d'un composant à partir du document YAML**

Pour rationaliser la **create-component** commande que vous utilisez dans le AWS CLI, créez un fichier JSON contenant tous les paramètres de composant que vous souhaitez transmettre à la commande. Indiquez l'emplacement du `wget-macos.yaml` document que vous avez créé précédemment. La paire `uri` clé-valeur contient la référence du fichier.
**Note**  
La convention de dénomination des valeurs de données dans le fichier JSON suit le modèle spécifié pour les paramètres de demande d'opération de l'API Image Builder. Pour consulter les paramètres de demande de commande d'API, consultez la [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)commande dans le manuel de référence de l'*API EC2 Image Builder*.  
Pour fournir les valeurs de données sous forme de paramètres de ligne de commande, reportez-vous aux noms de paramètres spécifiés dans la *référence des AWS CLI commandes*.

1. 

**Créer un fichier JSON d'entrée CLI**

   Utilisez un outil d'édition de fichiers pour créer un fichier nommé`install-wget-macos-component.json`. Incluez le contenu suivant :

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

**Création du composant**

   Utilisez la commande suivante pour créer le composant, en faisant référence au nom du fichier JSON que vous avez créé à l'étape précédente :

   ```
   aws imagebuilder create-component --cli-input-json file://install-wget-macos-component.json
   ```
**Note**  
Vous devez inclure l'option `file://` au début du chemin du fichier JSON.
Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\$1) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

------

### AWSTOE gestion des versions des composants pour les mises à jour depuis AWS CLI
<a name="component-update-cli"></a>

AWSTOE les noms et versions des composants sont intégrés dans le nom de ressource Amazon (ARN) du composant, après le préfixe du composant. Chaque nouvelle version d'un composant possède son propre ARN unique. Les étapes de création d'une nouvelle version sont exactement les mêmes que celles de création d'un nouveau composant, à condition que la version sémantique soit unique pour le nom de ce composant. Pour en savoir plus sur le versionnement sémantique des ressources Image Builder, consultez. [Versionnage sémantique dans Image Builder](ibhow-semantic-versioning.md)

Pour être sûr d'attribuer la version logique suivante, obtenez d'abord une liste des versions existantes du composant que vous souhaitez modifier. Utilisez la **list-components** commande avec le AWS CLI, et filtrez sur le nom.

Dans cet exemple, vous filtrez sur le nom du composant que vous avez créé dans les exemples Linux précédents. Pour répertorier le composant que vous avez créé, utilisez la valeur du `name` paramètre du fichier JSON que vous avez utilisé dans la **create-component** commande.

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

Sur la base de vos résultats, vous pouvez déterminer quelle devrait être la prochaine version.

## Importez un script pour créer un composant à partir du AWS CLI
<a name="import-component-cli"></a>

Dans certains scénarios, il peut être plus facile de démarrer avec un script préexistant. Pour ce scénario, vous pouvez utiliser l'exemple suivant. 

Cet exemple suppose que vous disposez d'un fichier appelé `import-component.json` (comme indiqué). Notez que le fichier fait directement référence à un PowerShell script appelé `AdminConfig.ps1` qui a déjà été téléchargé vers`amzn-s3-demo-source-bucket`. Actuellement, `SHELL` est pris en charge pour le composant`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"
}
```

Pour créer le composant à partir d'un script importé, exécutez la commande suivante.

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

## Gestion automatique des versions de build
<a name="auto-build-version-management"></a>

Lorsque vous créez un composant portant le même nom et la même version sémantique qu'un composant existant, Image Builder incrémente automatiquement la version de construction (par exemple, de `/1` à`/2`, à`/3`, etc.). Cela vous permet d'effectuer des mises à jour itératives de vos composants sans gérer manuellement les numéros de version, ce qui est particulièrement utile dans les CI/CD pipelines et les infrastructure-as-code déploiements. Si le contenu du composant est identique à celui de la version précédente, Image Builder revient `ResourceAlreadyExistsException` pour empêcher les composants dupliqués d'utiliser votre quota de service. 

## Utilisation des références de version
<a name="using-version-references"></a>

Lorsque vous créez ou récupérez un composant, Image Builder fournit automatiquement des modèles de version préconstruits ARNs avec des caractères génériques dans l' latestVersionReferences objet. Ces références facilitent l'utilisation des dernières versions de vos composants dans les recettes et les pipelines sans analyse ARNs manuelle. 

**Choisir la bonne référence de version**
+ latestVersionArn (x.x.x) - Utilisez toujours la dernière version du composant.
+ atestMajorVersionArn (1.x.x) - Utilisez les dernières versions mineures et patchs dans une version majeure.
+ latestMinorVersionArn (1.2.x) - Utilisez uniquement la dernière version du correctif.
+ latestPatchVersionArn (1.2.3) - Référencez une version sémantique spécifique, mais obtenez la dernière version de compilation.

**Note**  
Pour éviter des frais imprévus, veillez à nettoyer les ressources et les pipelines que vous avez créés à partir des exemples de ce guide. Pour plus d'informations sur la suppression de ressources dans Image Builder, consultez[Supprimer les ressources d'Image Builder obsolètes ou inutilisées](delete-resources.md).