

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.

# Configuration manuelle pour développer des composants personnalisés avec AWSTOE
<a name="toe-get-started"></a>

L'application AWS Task Orchestrator and Executor (AWSTOE) est une application autonome qui crée, valide et exécute des commandes dans un cadre de définition de composants. AWS les services peuvent être utilisés AWSTOE pour orchestrer les flux de travail, installer des logiciels, modifier les configurations du système et tester les versions d'images.

Procédez comme suit pour installer manuellement l' AWSTOE application et l'utiliser en tant qu'application autonome pour développer des composants personnalisés. Image Builder s'occupe de ces étapes pour vous, si vous utilisez la console ou les AWS CLI commandes Image Builder pour créer des composants personnalisés. Pour de plus amples informations, veuillez consulter [Créez des composants personnalisés avec Image Builder](create-component.md).

**Topics**
+ [Vérifiez la signature du téléchargement de AWSTOE l'installation](awstoe-verify-sig.md)
+ [Étape 1 : Installation AWSTOE](#toe-start-install)
+ [Étape 2 : définir les AWS informations d'identification](#toe-start-credentials)
+ [Étape 3 : développer les documents des composants localement](#toe-start-develop)
+ [Étape 4 : Valider AWSTOE les composants](#toe-start-validate)
+ [Étape 5 : Exécuter AWSTOE les composants](#toe-start-run)

## Étape 1 : Installation AWSTOE
<a name="toe-start-install"></a>

Pour développer des composants localement, téléchargez et installez l' AWSTOE application.

1. 

**Téléchargez l' AWSTOE application**

   Pour procéder à l'installation AWSTOE, choisissez le lien de téléchargement correspondant à votre architecture et à votre plate-forme. Pour obtenir la liste complète des liens de téléchargement des applications, voir [AWSTOE téléchargements](toe-component-manager.md#toe-downloads)
**Important**  
AWS supprime progressivement le support pour les versions 1.0 et 1.1 du protocole TLS. Pour accéder au compartiment S3 à des fins de AWSTOE téléchargement, votre logiciel client doit utiliser la version 1.2 ou ultérieure du protocole TLS. Pour plus d'informations, consultez ce billet [AWS de blog sur la sécurité](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).

1. 

**Vérifiez la signature**

   Les étapes de vérification de votre téléchargement dépendent de la plate-forme du serveur sur lequel vous exécutez l' AWSTOE application après l'avoir installée. Pour vérifier votre téléchargement sur un serveur Linux, consultez[Vérifiez la signature sous Linux ou macOS](awstoe-verify-sig.md#awstoe-verify-sig-linux). Pour vérifier votre téléchargement sur un serveur Windows, consultez[Vérifiez la signature sous Windows](awstoe-verify-sig.md#awstoe-verify-sig-win).

**Note**  
AWSTOE est invoqué directement depuis son emplacement de téléchargement. Il n'est pas nécessaire d'effectuer une étape d'installation séparée. Cela signifie également que cela AWSTOE peut apporter des modifications à l'environnement local.  
Pour vous assurer d'isoler les modifications lors du développement des composants, nous vous recommandons d'utiliser une EC2 instance pour développer et tester AWSTOE les composants.

## Étape 2 : définir les AWS informations d'identification
<a name="toe-start-credentials"></a>

 AWSTOE nécessite des AWS informations d'identification pour se connecter à d'autres sites Services AWS, tels qu'Amazon S3 et Amazon CloudWatch, lors de l'exécution de tâches telles que : 
+ Téléchargement de AWSTOE documents depuis un chemin Amazon S3 fourni par l'utilisateur.
+ Modules `S3Download` d'exécution ou `S3Upload` d'action.
+ Le streaming se connecte à CloudWatch, lorsqu'il est activé.

Si vous exécutez AWSTOE sur une EC2 instance, l'exécution AWSTOE utilise les mêmes autorisations que le rôle IAM attaché à l' EC2 instance.

Pour plus d'informations sur les rôles IAM pour EC2, consultez la section [Rôles IAM pour Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html). EC2

Les exemples suivants montrent comment définir les AWS informations d'identification à l'aide des variables d'`AWS_SECRET_ACCESS_KEY`environnement `AWS_ACCESS_KEY_ID` et. 

Pour définir ces variables sous Linux, macOS ou Unix, utilisez`export`.

```
export AWS_ACCESS_KEY_ID=your_access_key_id
```

```
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Pour définir ces variables sous Windows à l'aide de PowerShell, utilisez`$env`.

```
$env:AWS_ACCESS_KEY_ID=your_access_key_id
```

```
$env:AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Pour définir ces variables sous Windows à l'aide de l'invite de commande, utilisez`set`.

```
set AWS_ACCESS_KEY_ID=your_access_key_id
```

```
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

## Étape 3 : développer les documents des composants localement
<a name="toe-start-develop"></a>

Les composants sont créés à partir de documents YAML en texte brut. Pour plus d'informations sur la syntaxe des documents, consultez[Utiliser le cadre de documentation des AWSTOE composants pour les composants personnalisés](toe-use-documents.md).

Vous trouverez ci-dessous des exemples de documents relatifs aux composants *Hello World* pour vous aider à démarrer.

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

Certains des exemples de composants Linux présentés dans ce guide font référence à un fichier de document de composant nommé`hello-world-linux.yml`. Vous pouvez utiliser le document suivant pour commencer à utiliser ces exemples.

```
name: Hello World
description: This is hello world testing document for Linux.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

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

Certains des exemples de composants Windows présentés dans ce guide font référence à un fichier de document de composant nommé`hello-world-windows.yml`. Vous pouvez utiliser le document suivant pour commencer à utiliser ces exemples.

```
name: Hello World
description: This is Hello World testing document for Windows.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the test phase.'
```

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

Certains des exemples de composants macOS présentés dans ce guide font référence à un fichier de document de composant nommé`hello-world-macos.yml`. Vous pouvez utiliser le document suivant pour commencer à utiliser ces exemples.

```
name: Hello World
description: This is hello world testing document for macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------

## Étape 4 : Valider AWSTOE les composants
<a name="toe-start-validate"></a>

Vous pouvez valider la syntaxe des AWSTOE composants localement avec l' AWSTOE application. Les exemples suivants montrent la `validate` commande AWSTOE d'application permettant de valider la syntaxe d'un composant sans l'exécuter.

**Note**  
L' AWSTOE application ne peut valider que la syntaxe des composants pour le système d'exploitation actuel. Par exemple, lors de l'exécution `awstoe.exe` sous Windows, vous ne pouvez pas valider la syntaxe d'un document Linux qui utilise le module `ExecuteBash` d'action.

Linux ou macOS

```
awstoe validate --documents /home/user/hello-world.yml
```

Windows

```
awstoe.exe validate --documents C:\Users\user\Documents\hello-world.yml
```

## Étape 5 : Exécuter AWSTOE les composants
<a name="toe-start-run"></a>

L' AWSTOE application peut exécuter une ou plusieurs phases de documents spécifiés à l'aide de l'argument de ligne de `--phases` commande. Les valeurs prises en charge pour `--phases` sont `build``validate`, et`test`. Plusieurs valeurs de phase peuvent être saisies sous forme de valeurs séparées par des virgules.

Lorsque vous fournissez une liste de phases, l' AWSTOE application exécute séquentiellement les phases spécifiées pour chaque document. Par exemple, AWSTOE exécute les `validate` phases `build` et de`document1.yaml`, puis les `validate` phases `build` et de`document2.yaml`.

Pour garantir que vos journaux sont stockés en toute sécurité et conservés à des fins de dépannage, nous vous recommandons de configurer le stockage des journaux dans Amazon S3. Dans Image Builder, l'emplacement Amazon S3 pour la publication des journaux est spécifié dans la configuration de l'infrastructure. Pour plus d'informations sur la configuration de l'infrastructure, voir [Gérer la configuration de l'infrastructure Image Builder](manage-infra-config.md)

Si aucune liste de phases n'est fournie, l' AWSTOE application exécute toutes les phases dans l'ordre indiqué dans le document YAML.

Pour exécuter des phases spécifiques dans un ou plusieurs documents, utilisez les commandes suivantes.

Monophasé

```
awstoe run --documents hello-world.yml --phases build
```

Phases multiples

```
awstoe run --documents hello-world.yml --phases build,test
```

**Document exécuté**  
Exécuter toutes les phases dans un seul document

```
awstoe run --documents documentName.yaml
```

Exécuter toutes les phases dans plusieurs documents

```
awstoe run --documents documentName1.yaml,documentName2.yaml
```

Entrez les informations Amazon S3 pour télécharger les AWSTOE journaux à partir d'un chemin local défini par l'utilisateur (recommandé)

```
awstoe run --documents documentName.yaml --log-s3-bucket-name amzn-s3-demo-destination-bucket --log-s3-key-prefix S3KeyPrefix --log-s3-bucket-owner S3BucketOwner --log-directory local_path
```

Exécutez toutes les phases dans un seul document et affichez tous les journaux sur la console

```
awstoe run --documents documentName.yaml --trace
```

Exemple de commande 

```
awstoe run --documents s3://bucket/key/doc.yaml --phases build,validate
```

Exécuter un document avec un identifiant unique

```
awstoe run --documents documentName.yaml --execution-id user-provided-id --phases build,test
```

Obtenez de l'aide pour AWSTOE

```
awstoe --help
```