

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.

# Créez un projet de construction dans AWS CodeBuild
<a name="create-project"></a>

Vous pouvez utiliser la AWS CodeBuild console ou AWS SDKs créer un projet de construction. AWS CLI

**Topics**
+ [

## Prérequis
](#create-project-prerequisites)
+ [

## Création d'un projet de génération (console)
](#create-project-console)
+ [

## Création d'un projet de génération (AWS CLI)
](#create-project-cli)
+ [

## Création d'un projet de génération (AWS SDKs)
](#create-project-sdks)
+ [

## Création d'un projet de génération (CloudFormation)
](#create-project-cloud-formation)

## Prérequis
<a name="create-project-prerequisites"></a>

Avant de créer un projet de construction, répondez aux questions posées dans[Planification d'une génération](planning.md).

## Création d'un projet de génération (console)
<a name="create-project-console"></a>

Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

 Si une page CodeBuild d'informations s'affiche, choisissez **Create build project**. Sinon, dans le volet de navigation, développez **Build****, choisissez Build projects**, puis **Create build project**. 

Choisissez **Créer un projet de génération**. 

Remplissez les sections suivantes. Une fois terminé, choisissez **Créer un projet** de construction au bas de la page.

**Topics**
+ [

### Configuration du projet
](#create-project-console-project-config)
+ [

### Source
](#create-project-console-source)
+ [

### Environnement
](#create-project-console-environment)
+ [

### Spécifications de construction
](#create-project-console-buildspec)
+ [

### Configuration par lots
](#create-project-console-batch-config)
+ [

### Artefacts
](#create-project-console-artifacts)
+ [

### Journaux
](#create-project-console-logs)

### Configuration du projet
<a name="create-project-console-project-config"></a>

**Nom du projet**  
Entrez un nom pour ce projet de construction. Les noms des projets de construction doivent être uniques pour chaque AWS compte. 

**Description**  
Entrez une description facultative du projet de construction pour aider les autres utilisateurs à comprendre à quoi sert ce projet.

**Construire un badge**  
(Facultatif) Sélectionnez **Activer le badge de construction** pour rendre l'état de construction de votre projet visible et intégrable. Pour de plus amples informations, veuillez consulter [Exemple de badges de génération](sample-build-badges.md).  
Le badge de construction ne s'applique pas si votre fournisseur source est Amazon S3. 

**Activer la limite de génération simultanée**  <a name="enable-concurrent-build-limit.console"></a>
(Facultatif) Si vous souhaitez limiter le nombre de builds simultanés pour ce projet, effectuez les opérations suivantes :  

1. Sélectionnez **Restreindre le nombre de versions simultanées que ce projet peut démarrer**.

1. Dans **Limite de génération simultanée**, entrez le nombre maximum de versions simultanées autorisées pour ce projet. Cette limite ne peut pas être supérieure à la limite de création simultanée définie pour le compte. Si vous essayez de saisir un nombre supérieur à la limite du compte, un message d'erreur s'affiche.
Les nouvelles générations ne sont démarrées que si le nombre actuel de générations est inférieur ou égal à cette limite. Si le nombre actuel de générations atteint cette limite, les nouvelles générations sont limitées et ne sont pas exécutées.

**Informations supplémentaires**  
(Facultatif) Pour **Tags**, entrez le nom et la valeur de tous les tags que vous souhaitez que les AWS services d'assistance utilisent. Utilisez **Ajouter une ligne** pour ajouter une balise. Vous pouvez ajouter jusqu’à 50 balises. 

### Source
<a name="create-project-console-source"></a>

**Fournisseur de source**  
Choisissez le type de fournisseur de code source. Utilisez les listes suivantes pour effectuer des sélections adaptées à votre fournisseur de source :  
CodeBuild ne prend pas en charge Bitbucket Server.

------
#### [ Amazon S3 ]

 **Compartiment**   
Choisissez le nom du compartiment d'entrée contenant le code source. 

 **Clé d'objet S3 ou dossier S3**   
Entrez le nom du fichier ZIP ou le chemin d'accès au dossier contenant le code source. Entrez une barre oblique (/) pour tout télécharger dans le compartiment S3. 

 **Version de la source**   
Entrez l'ID de version de l'objet qui représente la version de votre fichier d'entrée. Pour plus d'informations, consultez[Exemple de version source avec AWS CodeBuild](sample-source-version.md). 

------
#### [ CodeCommit ]

 **Référentiel**   
Choisissez le référentiel que vous souhaitez utiliser.

**Type de référence**  
Choisissez **Branch**, **Git tag** ou **Commit ID** pour spécifier la version de votre code source. Pour de plus amples informations, veuillez consulter [Exemple de version source avec AWS CodeBuild](sample-source-version.md).  
Nous vous recommandons de choisir des noms de branche Git qui ne ressemblent pas à des validations IDs, tels que `811dd1ba1aba14473856cee38308caed7190c0d` ou`5392f7`. Cela vous permet d'éviter les collisions entre Git Checkout et les validations réelles.

 **Profondeur du clone Git**   
Choisissez de créer un clone superficiel avec un historique tronqué au nombre de validations spécifié. Si vous souhaitez un clone complet, choisissez **Full**. 

**Sous-modules Git**  
Sélectionnez **Use Git submodules (Utiliser les sous-modules Git)** si vous souhaitez inclure les sous-modules Git dans votre référentiel. 

------
#### [ Bitbucket ]

 **Accréditation**   
Choisissez **Informations d'identification source par défaut** ou Informations **d'identification source personnalisées** et suivez les instructions pour gérer les informations d'identification source par défaut ou personnaliser les informations d'identification source.

 **Type de connexion**   
Choisissez **CodeConnections**le **OAuth**mot de **passe de l'application** ou le **jeton d'accès personnel** auquel vous souhaitez vous connecter CodeBuild.

 **Connection**   
Sélectionnez une connexion Bitbucket ou un secret de Secrets Manager pour vous connecter via le type de connexion que vous avez spécifié.

 **Référentiel**   
Choisissez **Repository dans mon compte Bitbucket** ou **Public repository** et saisissez l'URL du référentiel.

 **Version de la source**   
Entrez une branche, un ID de validation, une balise ou une référence et un ID de validation. Pour plus d’informations, consultez [Exemple de version source avec AWS CodeBuild](sample-source-version.md).   
Nous vous recommandons de choisir des noms de branche Git qui ne ressemblent pas à des validations IDs, tels que `811dd1ba1aba14473856cee38308caed7190c0d` ou`5392f7`. Cela vous permet d'éviter les collisions entre Git Checkout et les validations réelles.

 **Profondeur du clone Git**   
Choisissez **Git clone depth (Profondeur du clone Git)** pour créer un clone superficiel avec un historique tronqué au nombre de validations spécifié. Si vous souhaitez un clone complet, choisissez **Full**. 

**Sous-modules Git**  
Sélectionnez **Use Git submodules (Utiliser les sous-modules Git)** si vous souhaitez inclure les sous-modules Git dans votre référentiel. 

**Statut de la génération**  
Sélectionnez **Signaler les statuts de construction au fournisseur source au début et à la fin de vos builds** si vous souhaitez que l'état du début et de la fin de votre build soit signalé à votre fournisseur source.   
Pour pouvoir signaler l'état de construction au fournisseur de source, l'utilisateur associé au fournisseur de source doit avoir un accès en écriture au dépôt. Si l'utilisateur ne dispose pas d'un accès en écriture, l'état de construction ne peut pas être mis à jour. Pour de plus amples informations, veuillez consulter [Accès au fournisseur de source](access-tokens.md).  
Pour **le contexte de statut**, entrez la valeur à utiliser pour le `name` paramètre dans le statut de validation de Bitbucket. Pour plus d'informations, voir [build](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) dans la documentation de l'API Bitbucket.  
Pour **l'URL cible**, entrez la valeur à utiliser pour le `url` paramètre dans le statut de validation de Bitbucket. Pour plus d'informations, voir [build](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) dans la documentation de l'API Bitbucket.  
L'état d'une compilation déclenchée par un webhook est toujours communiqué au fournisseur source. Pour que le statut d'une version démarrée depuis la console ou un appel d'API soit signalé au fournisseur source, vous devez sélectionner ce paramètre.  
Si les builds de votre projet sont déclenchés par un webhook, vous devez envoyer un nouveau commit au dépôt pour que la modification de ce paramètre prenne effet.

Dans **Événements de webhook source primaire**, sélectionnez **Reconstruire chaque fois qu'une modification de code est envoyée à ce référentiel** si vous CodeBuild souhaitez générer le code source chaque fois qu'une modification de code est transférée vers ce référentiel. Pour plus d'informations sur les webhooks et les groupes de filtres, consultez[Événements du webhook Bitbucket](bitbucket-webhook.md).

------
#### [ GitHub ]

 **Accréditation**   
Choisissez **Informations d'identification source par défaut** ou Informations **d'identification source personnalisées** et suivez les instructions pour gérer les informations d'identification source par défaut ou personnaliser les informations d'identification source.

 **Type de connexion**   
Choisissez **GitHub Application** ou **jeton d'accès personnel** auquel vous souhaitez vous connecter CodeBuild. **OAuth**

 **Connection**   
Sélectionnez une GitHub connexion ou un secret du Gestionnaire de Secrets pour vous connecter via le type de connexion que vous avez spécifié.

 **Référentiel**   
Choisissez **Repository in my GitHub account**, **Public repository** ou **GitHub Scoped Webhook** et entrez l'URL du référentiel.

 **Version de la source**   
Entrez une branche, un ID de validation, une balise ou une référence et un ID de validation. Pour plus d’informations, consultez [Exemple de version source avec AWS CodeBuild](sample-source-version.md).   
Nous vous recommandons de choisir des noms de branche Git qui ne ressemblent pas à des validations IDs, tels que `811dd1ba1aba14473856cee38308caed7190c0d` ou`5392f7`. Cela vous permet d'éviter les collisions entre Git Checkout et les validations réelles.

 **Profondeur du clone Git**   
Choisissez **Git clone depth (Profondeur du clone Git)** pour créer un clone superficiel avec un historique tronqué au nombre de validations spécifié. Si vous souhaitez un clone complet, choisissez **Full**. 

**Sous-modules Git**  
Sélectionnez **Use Git submodules (Utiliser les sous-modules Git)** si vous souhaitez inclure les sous-modules Git dans votre référentiel. 

**Statut de la génération**  
Sélectionnez **Signaler les statuts de construction au fournisseur source au début et à la fin de vos builds** si vous souhaitez que l'état du début et de la fin de votre build soit signalé à votre fournisseur source.   
Pour pouvoir signaler l'état de construction au fournisseur de source, l'utilisateur associé au fournisseur de source doit avoir un accès en écriture au dépôt. Si l'utilisateur ne dispose pas d'un accès en écriture, l'état de construction ne peut pas être mis à jour. Pour de plus amples informations, veuillez consulter [Accès au fournisseur de source](access-tokens.md).  
Pour **le contexte d'état**, entrez la valeur à utiliser pour le `context` paramètre dans le statut de GitHub validation. Pour plus d'informations, consultez la section [Créer un statut de validation](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) dans le guide du GitHub développeur.  
Pour **l'URL cible**, entrez la valeur à utiliser pour le `target_url` paramètre dans le statut de GitHub validation. Pour plus d'informations, consultez la section [Créer un statut de validation](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) dans le guide du GitHub développeur.  
L'état d'une compilation déclenchée par un webhook est toujours communiqué au fournisseur source. Pour que le statut d'une version démarrée depuis la console ou un appel d'API soit signalé au fournisseur source, vous devez sélectionner ce paramètre.  
Si les builds de votre projet sont déclenchés par un webhook, vous devez envoyer un nouveau commit au dépôt pour que la modification de ce paramètre prenne effet.

Dans **Événements de webhook source primaire**, sélectionnez **Reconstruire chaque fois qu'une modification de code est envoyée à ce référentiel** si vous CodeBuild souhaitez générer le code source chaque fois qu'une modification de code est transférée vers ce référentiel. Pour plus d'informations sur les webhooks et les groupes de filtres, consultez[GitHub événements webhook](github-webhook.md).

------
#### [ GitHub Enterprise Server ]

 **Accréditation**   
Choisissez **Informations d'identification source par défaut** ou Informations **d'identification source personnalisées** et suivez les instructions pour gérer les informations d'identification source par défaut ou personnaliser les informations d'identification source.

 **Type de connexion**   
Choisissez **CodeConnections**un **jeton d'accès personnel** auquel vous souhaitez vous connecter CodeBuild.

 **Connection**   
Sélectionnez une connexion GitHub Enterprise ou un secret Secrets Manager pour vous connecter via le type de connexion que vous avez spécifié.

 **Référentiel**   
Choisissez **Repository in my GitHub Enterprise account** ou **GitHub Enterprise Scoped Webhook** et entrez l'URL du référentiel.

**Version de la source**  
Entrez une pull request, une branche, un identifiant de validation, une balise ou une référence et un identifiant de validation. Pour de plus amples informations, veuillez consulter [Exemple de version source avec AWS CodeBuild](sample-source-version.md).   
Nous vous recommandons de choisir des noms de branche Git qui ne ressemblent pas à des validations IDs, tels que `811dd1ba1aba14473856cee38308caed7190c0d` ou`5392f7`. Cela vous permet d'éviter les collisions entre Git Checkout et les validations réelles.

**Profondeur du clone Git**  
Choisissez **Git clone depth (Profondeur du clone Git)** pour créer un clone superficiel avec un historique tronqué au nombre de validations spécifié. Si vous souhaitez un clone complet, choisissez **Full**. 

**Sous-modules Git**  
Sélectionnez **Use Git submodules (Utiliser les sous-modules Git)** si vous souhaitez inclure les sous-modules Git dans votre référentiel. 

**Statut de la génération**  
Sélectionnez **Signaler les statuts de construction au fournisseur source au début et à la fin de vos builds** si vous souhaitez que l'état du début et de la fin de votre build soit signalé à votre fournisseur source.   
Pour pouvoir signaler l'état de construction au fournisseur de source, l'utilisateur associé au fournisseur de source doit avoir un accès en écriture au dépôt. Si l'utilisateur ne dispose pas d'un accès en écriture, l'état de construction ne peut pas être mis à jour. Pour de plus amples informations, veuillez consulter [Accès au fournisseur de source](access-tokens.md).  
Pour **le contexte d'état**, entrez la valeur à utiliser pour le `context` paramètre dans le statut de GitHub validation. Pour plus d'informations, consultez la section [Créer un statut de validation](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) dans le guide du GitHub développeur.  
Pour **l'URL cible**, entrez la valeur à utiliser pour le `target_url` paramètre dans le statut de GitHub validation. Pour plus d'informations, consultez la section [Créer un statut de validation](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) dans le guide du GitHub développeur.  
L'état d'une compilation déclenchée par un webhook est toujours communiqué au fournisseur source. Pour que le statut d'une version démarrée depuis la console ou un appel d'API soit signalé au fournisseur source, vous devez sélectionner ce paramètre.  
Si les builds de votre projet sont déclenchés par un webhook, vous devez envoyer un nouveau commit au dépôt pour que la modification de ce paramètre prenne effet.

**SSL non sécurisé**  
Sélectionnez **Activer le protocole SSL non sécurisé** pour ignorer les avertissements SSL lors de la connexion au référentiel de votre projet GitHub d'entreprise. 

Dans **Événements de webhook source primaire**, sélectionnez **Reconstruire chaque fois qu'une modification de code est envoyée à ce référentiel** si vous CodeBuild souhaitez générer le code source chaque fois qu'une modification de code est transférée vers ce référentiel. Pour plus d'informations sur les webhooks et les groupes de filtres, consultez[GitHub événements webhook](github-webhook.md).

------
#### [ GitLab ]

 **Accréditation**   
Choisissez **Informations d'identification source par défaut** ou Informations **d'identification source personnalisées** et suivez les instructions pour gérer les informations d'identification source par défaut ou personnaliser les informations d'identification source.

 **Type de connexion**   
**CodeConnections**est utilisé pour se connecter GitLab à CodeBuild.

 **Connection**   
Sélectionnez une GitLab connexion par laquelle vous souhaitez vous connecter CodeConnections.

 **Référentiel**   
Choisissez le référentiel que vous souhaitez utiliser.

 **Version de la source**   
Entrez un identifiant de pull request, une branche, un identifiant de validation, une balise ou une référence et un identifiant de validation. Pour de plus amples informations, veuillez consulter [Exemple de version source avec AWS CodeBuild](sample-source-version.md).   
Nous vous recommandons de choisir des noms de branche Git qui ne ressemblent pas à des validations IDs, tels que `811dd1ba1aba14473856cee38308caed7190c0d` ou`5392f7`. Cela vous permet d'éviter les collisions entre Git Checkout et les validations réelles.

 **Profondeur du clone Git**   
Choisissez **Git clone depth (Profondeur du clone Git)** pour créer un clone superficiel avec un historique tronqué au nombre de validations spécifié. Si vous souhaitez un clone complet, choisissez **Full**. 

**Statut de la génération**  
Sélectionnez **Signaler les statuts de construction au fournisseur source au début et à la fin de vos builds** si vous souhaitez que l'état du début et de la fin de votre build soit signalé à votre fournisseur source.   
Pour pouvoir signaler l'état de construction au fournisseur de source, l'utilisateur associé au fournisseur de source doit avoir un accès en écriture au dépôt. Si l'utilisateur ne dispose pas d'un accès en écriture, l'état de construction ne peut pas être mis à jour. Pour de plus amples informations, veuillez consulter [Accès au fournisseur de source](access-tokens.md).

------
#### [ GitLab Self Managed ]

 **Accréditation**   
Choisissez **Informations d'identification source par défaut** ou Informations **d'identification source personnalisées** et suivez les instructions pour gérer les informations d'identification source par défaut ou personnaliser les informations d'identification source.

 **Type de connexion**   
**CodeConnections**est utilisé pour connecter GitLab Self Managed à CodeBuild.

 **Connection**   
Sélectionnez une connexion GitLab autogérée par laquelle vous souhaitez vous connecter CodeConnections.

 **Référentiel**   
Choisissez le référentiel que vous souhaitez utiliser.

 **Version de la source**   
Entrez un identifiant de pull request, une branche, un identifiant de validation, une balise ou une référence et un identifiant de validation. Pour de plus amples informations, veuillez consulter [Exemple de version source avec AWS CodeBuild](sample-source-version.md).   
Nous vous recommandons de choisir des noms de branche Git qui ne ressemblent pas à des validations IDs, tels que `811dd1ba1aba14473856cee38308caed7190c0d` ou`5392f7`. Cela vous permet d'éviter les collisions entre Git Checkout et les validations réelles.

 **Profondeur du clone Git**   
Choisissez **Git clone depth (Profondeur du clone Git)** pour créer un clone superficiel avec un historique tronqué au nombre de validations spécifié. Si vous souhaitez un clone complet, choisissez **Full**. 

**Statut de la génération**  
Sélectionnez **Signaler les statuts de construction au fournisseur source au début et à la fin de vos builds** si vous souhaitez que l'état du début et de la fin de votre build soit signalé à votre fournisseur source.   
Pour pouvoir signaler l'état de construction au fournisseur de source, l'utilisateur associé au fournisseur de source doit avoir un accès en écriture au dépôt. Si l'utilisateur ne dispose pas d'un accès en écriture, l'état de construction ne peut pas être mis à jour. Pour de plus amples informations, veuillez consulter [Accès au fournisseur de source](access-tokens.md).

------

### Environnement
<a name="create-project-console-environment"></a>

**Modèle de provisionnement**  
Effectuez l’une des actions suivantes :  
+ Pour utiliser des flottes à la demande gérées par AWS CodeBuild, choisissez **On-Demand**. Avec des flottes à la demande, CodeBuild fournit le calcul nécessaire à vos builds. Les machines sont détruites une fois la construction terminée. Les flottes à la demande sont entièrement gérées et incluent des fonctionnalités de mise à l'échelle automatique pour faire face aux pics de demande.
+ Pour utiliser des flottes de capacité réservée gérées par AWS CodeBuild, choisissez **Capacité réservée**, puis sélectionnez un **nom de flotte**. Avec les flottes de capacité réservée, vous configurez un ensemble d'instances dédiées pour votre environnement de construction. Ces machines restent inactives, prêtes à traiter les builds ou les tests immédiatement et réduisent les durées de construction. Avec des flottes de capacité réservées, vos machines fonctionnent en permanence et continueront d'entraîner des coûts tant qu'elles seront approvisionnées.
Pour plus d’informations, veuillez consulter [Exécutez des builds sur des flottes à capacité réservée](fleets.md).

**Image de l'environnement**  <a name="environment-image.console"></a>
Effectuez l’une des actions suivantes :  
+ Pour utiliser une image Docker gérée par AWS CodeBuild, choisissez **Image gérée**, puis sélectionnez **Système d'exploitation**, **Runtime (s)**, **Image** et **Version de l'image**. Effectuez votre sélection pour **Type d'environnement** si cette option est disponible.
+ Pour utiliser une autre image Docker, choisissez **Image personnalisée**. Pour le **type d'environnement**, choisissez **ARM**, **Linux****, Linux GPU** ou **Windows**. Si vous choisissez **Other registry (Autre registre)**, pour **External registry URL (URL du registre externe)**, entrez le nom et la balise de l'image Docker dans Docker Hub au format `docker repository/docker image name`. Si vous choisissez **Amazon ECR**, utilisez le **référentiel Amazon ECR** et l'image **Amazon ECR pour choisir l'image** Docker dans votre compte. AWS 
+ Pour utiliser une image Docker privée, choisissez **Image personnalisée**. Pour le **type d'environnement**, choisissez **ARM**, **Linux****, Linux GPU** ou **Windows**. Pour **Image registry (Registre de l'image)**, choisissez **Other registry (Autre registre)** et entrez l'ARN des informations d'identification de votre image Docker privée. Les informations d'identification doivent être créées par Secrets Manager. Pour plus d'informations, consultez [Présentation de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) dans le *Guide de l'utilisateur AWS Secrets Manager *.
CodeBuild remplace le `ENTRYPOINT` pour les images Docker personnalisées.

**Calcul**  
Effectuez l’une des actions suivantes :  
+ Pour utiliser le EC2 calcul, choisissez **EC2**. EC2 le calcul offre une flexibilité optimisée lors des exécutions d'actions.
+ **Pour utiliser le calcul Lambda, choisissez Lambda.** Le calcul Lambda offre des vitesses de démarrage optimisées pour vos builds. Lambda permet des builds plus rapides grâce à une latence de démarrage plus faible. Lambda s'adapte également automatiquement, de sorte que les builds n'attendent pas dans la file d'attente pour s'exécuter. Pour plus d’informations, veuillez consulter [Exécuter des builds sur AWS Lambda ordinateur](lambda.md).

**Rôle de service**  
Effectuez l’une des actions suivantes :  
+ Si vous n'avez pas de rôle CodeBuild de service, choisissez **Nouveau rôle de service**. Dans **Role name**, entrez un nom pour le nouveau rôle.
+ Si vous avez un rôle CodeBuild de service, choisissez **Rôle de service existant**. Dans **Role ARN**, choisissez le rôle de service.
Lorsque vous utilisez la console pour créer un projet de génération, vous pouvez créer un rôle de CodeBuild service en même temps. Par défaut, le rôle fonctionne avec ce projet de génération uniquement. Si vous utilisez la console pour associer ce rôle de service à un autre projet de génération, le rôle est mis à jour pour fonctionner avec l'autre projet de génération. Un rôle de service peut fonctionner avec 10 projets de génération maximum.

**Configuration supplémentaire**    
**Limite de tentatives automatiques**  
Spécifiez le nombre de tentatives automatiques supplémentaires après un échec de compilation. Par exemple, si la limite de tentatives automatiques est définie sur 2, l'API CodeBuild appellera l'`RetryBuild`API pour réessayer automatiquement votre build jusqu'à 2 fois supplémentaires.  
**Expiration**  
Spécifiez une valeur, comprise entre 5 minutes et 36 heures, après quoi la CodeBuild génération s'arrête si elle n'est pas terminée. Si les valeurs de **heures** et **minutes** sont laissées vides, la valeur par défaut de 60 minutes est utilisée.  
**privilégié**  
(Facultatif) Sélectionnez **Activer cet indicateur si vous souhaitez créer des images Docker ou si vous souhaitez que vos versions obtiennent des privilèges élevés** uniquement si vous prévoyez d'utiliser ce projet de génération pour créer des images Docker. Sinon, toutes les générations associées qui tentent d'interagir avec le démon Docker échouent. Vous devez également démarrer le démon Docker afin que vos générations puissent interagir avec celui-ci. Pour cela, vous pouvez initialiser le démon Docker au cours de la phase `install` de votre spécification de génération en exécutant les commandes de génération ci-après. N'exécutez pas ces commandes si vous avez choisi une image d'environnement de construction fournie CodeBuild par le support Docker.  
Par défaut, le démon Docker est activé pour les versions non VPC. Si vous souhaitez utiliser des conteneurs Docker pour les builds VPC, [consultez Runtime Privilege et Linux](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) Capabilities sur le site Web de Docker Docs et activez le mode privilégié. De plus, Windows ne prend pas en charge le mode privilégié.

```
- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 &
- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
```  
**VPC**  
Si vous souhaitez CodeBuild travailler avec votre VPC :  
+ Pour le **VPC**, choisissez l'ID du VPC qui utilise. CodeBuild 
+ Pour les sous-réseaux **VPC, choisissez les sous-réseaux** qui incluent les ressources qui utilisent. CodeBuild 
+ Pour les **groupes de sécurité VPC**, choisissez les groupes de sécurité CodeBuild utilisés pour autoriser l'accès aux ressources du. VPCs
Pour de plus amples informations, veuillez consulter [Utilisation AWS CodeBuild avec Amazon Virtual Private Cloud](vpc-support.md).  
**Calcul**  
Choisissez l'une des options disponibles.  
**Informations d'identification du registre**  
Spécifiez un identifiant de registre lorsque le projet est configuré avec une image de registre non privée.  
Ces informations d'identification ne seront utilisées que si les images sont remplacées par celles provenant de registres privés.  
**Variables d'environnement**  
Entrez le nom et la valeur, puis choisissez le type de chaque variable d'environnement à utiliser pour les builds.   
CodeBuild définit automatiquement la variable d'environnement pour votre AWS région. Vous devez définir les variables d'environnement suivantes si vous ne les avez pas ajoutées dans votre fichier buildspec.yml :  
+ AWS\$1ACCOUNT\$1ID
+ IMAGE\$1REPO\$1NAME
+ IMAGE\$1TAG
La console et AWS CLI les utilisateurs peuvent voir les variables d'environnement. Si la visibilité de vos variables d'environnement ne vous pose pas de problème, définissez les zones **Nom** et **Valeur**, puis définissez **Type** sur **Texte brut**.  
Nous vous recommandons de stocker une variable d'environnement avec une valeur sensible, telle qu'un identifiant de clé d' AWS accès, une clé d'accès AWS secrète ou un mot de passe en tant que paramètre dans Amazon EC2 Systems Manager Parameter Store ou AWS Secrets Manager.   
Si vous utilisez Amazon EC2 Systems Manager Parameter Store, choisissez **Parameter** dans **Type**. Dans **Nom**, entrez un identifiant CodeBuild à référencer. Pour **Value**, entrez le nom du paramètre tel qu'il est enregistré dans Amazon EC2 Systems Manager Parameter Store. Si l'on prend comme exemple un paramètre nommé `/CodeBuild/dockerLoginPassword`, pour **Type**, choisissez **Parameter (Paramètre)**. Pour **Nom**, saisissez `LOGIN_PASSWORD`. Pour le champ **Valeur**, saisissez `/CodeBuild/dockerLoginPassword`.   
Si vous utilisez Amazon EC2 Systems Manager Parameter Store, nous vous recommandons de stocker les paramètres avec des noms de paramètres commençant par `/CodeBuild/` (par exemple,`/CodeBuild/dockerLoginPassword`). Vous pouvez utiliser la CodeBuild console pour créer un paramètre dans Amazon EC2 Systems Manager. Choisissez **Create parameter (Créer un paramètre)**, puis suivez les instructions de la boîte de dialogue. (Dans cette boîte de dialogue, pour la **clé KMS**, vous pouvez spécifier l'ARN d'une AWS KMS clé dans votre compte. Amazon EC2 Systems Manager utilise cette clé pour chiffrer la valeur du paramètre pendant le stockage et pour la déchiffrer lors de la récupération.) Si vous utilisez la CodeBuild console pour créer un paramètre, la console commence par le nom du paramètre `/CodeBuild/` tel qu'il est enregistré. Pour plus d'informations, consultez la [procédure pas à pas de la console Systems Manager Parameter [Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) et Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) dans le *guide de l'utilisateur d'Amazon EC2 Systems Manager*.  
Si votre projet de génération fait référence à des paramètres stockés dans Amazon EC2 Systems Manager Parameter Store, le rôle de service du projet de génération doit autoriser l'`ssm:GetParameters`action. Si vous avez sélectionné **Nouveau rôle de service** plus tôt, CodeBuild inclut cette action dans le rôle de service par défaut de votre projet de génération. En revanche, si vous avez choisi précédemment **Existing service role (Rôle de service existant)**, vous devez inclure séparément cette action dans votre rôle de service.  
Si votre projet de construction fait référence à des paramètres stockés dans Amazon EC2 Systems Manager Parameter Store avec des noms de paramètres qui ne commencent pas par`/CodeBuild/`, et que vous avez choisi **Nouveau rôle de service**, vous devez mettre à jour ce rôle de service pour autoriser l'accès aux noms de paramètres qui ne commencent pas par`/CodeBuild/`. En effet, ce rôle de service permet uniquement d'accéder aux noms de paramètres qui commencent par `/CodeBuild/`.  
Si vous choisissez **Nouveau rôle de service, le rôle** de service inclut l'autorisation de déchiffrer tous les paramètres de l'espace de `/CodeBuild/` noms dans le magasin de paramètres Amazon EC2 Systems Manager.  
Les variables d'environnement que vous définissez remplacent les variables d'environnement existantes. Par exemple, si l'image Docker contient déjà une variable d'environnement nommée `MY_VAR` avec la valeur `my_value` et que vous définissez une variable d'environnement nommée `MY_VAR` avec la valeur `other_value`, la valeur `my_value` est remplacée par `other_value`. De même, si l'image Docker contient déjà une variable d'environnement nommée `PATH` avec la valeur `/usr/local/sbin:/usr/local/bin` et que vous définissez une variable d'environnement nommée `PATH` avec la valeur `$PATH:/usr/share/ant/bin`, la valeur `/usr/local/sbin:/usr/local/bin` est remplacée par la valeur littérale `$PATH:/usr/share/ant/bin`.  
Ne définissez pas de variables d'environnement avec un nom commençant par `CODEBUILD_`. Ce préfixe est réservé à une utilisation interne .  
Si une variable d'environnement avec le même nom est définie dans plusieurs emplacements, la valeur est déterminée comme suit :  
+ La valeur de l'appel d'opération de démarrage de génération a une priorité plus élevée.
+ La valeur de la définition de projet de génération vient ensuite dans l'ordre des priorités.
+ La valeur figurant dans la déclaration buildspec a la priorité la plus faible.
Si vous utilisez Secrets Manager, pour **Type**, choisissez **Secrets Manager**. Dans **Nom**, entrez un identifiant CodeBuild à référencer. Pour **Value (Valeur)**, saisissez un `reference-key` à l'aide du modèle `secret-id:json-key:version-stage:version-id`. Pour plus d’informations, veuillez consulter [Secrets Manager reference-key in the buildspec file](build-spec-ref.md#secrets-manager-build-spec).  
Si vous utilisez Secrets Manager, nous vous recommandons de stocker les secrets dont le nom commence par `/CodeBuild/` (par exemple,`/CodeBuild/dockerLoginPassword`). Pour plus d'informations, consultez [Présentation de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) dans le *Guide de l'utilisateur AWS Secrets Manager *.   
Si votre projet de génération fait référence à des secrets stockés dans Secrets Manager, le rôle de service du projet de génération doit autoriser l'`secretsmanager:GetSecretValue`action. Si vous avez sélectionné **Nouveau rôle de service** plus tôt, CodeBuild inclut cette action dans le rôle de service par défaut de votre projet de génération. En revanche, si vous avez choisi précédemment **Existing service role (Rôle de service existant)**, vous devez inclure séparément cette action dans votre rôle de service.   
Si votre projet de génération fait référence à des secrets stockés dans Secrets Manager avec des noms secrets qui ne commencent pas par`/CodeBuild/`, et que vous avez choisi **Nouveau rôle de service**, vous devez mettre à jour le rôle de service pour autoriser l'accès aux noms de secret qui ne commencent pas par`/CodeBuild/`. Cela est dû au fait que le rôle de service autorise l'accès uniquement aux noms secrets commençant par`/CodeBuild/`.  
Si vous choisissez **Nouveau rôle de service, le rôle** de service inclut l'autorisation de déchiffrer tous les secrets sous l'espace de `/CodeBuild/` noms dans le Gestionnaire de secrets.

### Spécifications de construction
<a name="create-project-console-buildspec"></a>

**Spécifications de construction**  
Effectuez l’une des actions suivantes :  
+ Si votre code source inclut un fichier buildspec, choisissez **Utiliser un fichier buildspec**. Par défaut, CodeBuild recherche un fichier nommé `buildspec.yml` dans le répertoire racine de code source. Si votre fichier buildspec utilise un nom ou un emplacement différent, entrez son chemin depuis la racine source dans le **nom Buildspec (**par exemple, ou. `buildspec-two.yml` `configuration/buildspec.yml` Si le fichier buildspec se trouve dans un compartiment S3, il doit se trouver dans la même AWS région que votre projet de construction. Spécifiez le fichier buildspec à l'aide de son ARN (par exemple,). `arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml`
+ Si votre code source ne comprend pas de fichier de spécification de génération ou si vous souhaitez exécuter des commandes de génération différentes de celles spécifiées pour la phase `build` dans le fichier `buildspec.yml` au sein du répertoire racine du code source, choisissez **Insérer des commandes de génération**. Pour **Build commands (Commandes de génération)**, saisissez les commandes que vous souhaitez exécuter lors de la phase `build`. Pour plusieurs commandes, séparez celles-ci avec `&&` (par exemple, `mvn test && mvn package`). Pour exécuter des commandes dans d'autres phases, ou si vous avez une longue liste de commandes pour la `build` phase, ajoutez un `buildspec.yml` fichier dans le répertoire racine du code source, ajoutez les commandes au fichier, puis choisissez **Utiliser le fichier buildspec.yml dans le répertoire racine du** code source.
Pour plus d’informations, consultez le [Référence des spécifications de génération](build-spec-ref.md).

### Configuration par lots
<a name="create-project-console-batch-config"></a>

Vous pouvez exécuter un groupe de builds en une seule opération. Pour de plus amples informations, veuillez consulter [Exécuter des builds par lots](batch-build.md).

**Définition de la configuration par lots**  
Sélectionnez cette option pour autoriser les compilations par lots dans ce projet.

**Rôle du service Batch**  
Fournit le rôle de service pour les compilations par lots.   
Sélectionnez l'une des méthodes suivantes :   
+ Si vous n'avez pas de rôle de service par lots, choisissez **Nouveau rôle de service**. Dans **Rôle de service**, entrez le nom du nouveau rôle.
+ Si vous avez un rôle de service par lots, choisissez **Rôle de service existant**. Dans **Rôle de service**, choisissez le rôle de service.
Les builds par lots introduisent un nouveau rôle de sécurité dans la configuration par lots. Ce nouveau rôle est requis car CodeBuild il doit être capable d'appeler les `RetryBuild` actions `StartBuild``StopBuild`, et en votre nom pour exécuter des builds dans le cadre d'un lot. Les clients doivent utiliser un nouveau rôle, et non le même que celui qu'ils utilisent dans leur build, pour deux raisons :  
+ L'attribution du rôle `StartBuild` de construction et `RetryBuild` des autorisations permettrait à une seule version de démarrer d'autres versions via le buildspec. `StopBuild`
+ CodeBuild les versions par lots fournissent des restrictions qui limitent le nombre de versions et les types de calcul qui peuvent être utilisés pour les versions du lot. Si le rôle de build dispose de ces autorisations, il est possible que les builds eux-mêmes puissent contourner ces restrictions.

**Types de calcul autorisés pour le traitement par lots**  
Sélectionnez les types de calcul autorisés pour le lot. Sélectionnez toutes les réponses qui s'appliquent.

**Flottes autorisées pour le lot**  
Sélectionnez les flottes autorisées pour le lot. Sélectionnez toutes les réponses qui s'appliquent.

**Nombre maximal de builds autorisés par lot**  
Entrez le nombre maximum de builds autorisés dans le lot. Si un lot dépasse cette limite, il échouera.

**Délai d'expiration du Batch**  
Entrez la durée maximale pendant laquelle la génération par lots doit être terminée.

**Combinez des artefacts**  
Sélectionnez **Combiner tous les artefacts du lot en un seul emplacement** pour que tous les artefacts du lot soient combinés en un seul emplacement.

 **Mode de rapport par lots**   
Sélectionnez le mode de rapport d'état de construction souhaité pour les versions par lots.  
**Ce champ n'est disponible que lorsque la source du projet est Bitbucket ou GitHub Enterprise GitHub, et l'option **Signaler les statuts de construction au fournisseur de source lorsque le début et la fin de vos builds** sont sélectionnés sous Source.**   
 **Constructions agrégées**   
Sélectionnez cette option pour que les statuts de toutes les versions du lot soient combinés dans un seul rapport d'état.  
 **Constructions individuelles**   
Sélectionnez cette option pour que les statuts de toutes les versions du lot soient signalés séparément.

### Artefacts
<a name="create-project-console-artifacts"></a>

**Type**  
Effectuez l’une des actions suivantes :  
+ Si vous ne souhaitez pas créer des artefacts de sortie de génération, choisissez **Aucun artefact**. Vous pouvez le faire si vous exécutez uniquement des tests de compilation ou si vous souhaitez transférer une image Docker vers un référentiel Amazon ECR.
+ Pour stocker le résultat du build dans un compartiment S3, choisissez **Amazon S3**, puis procédez comme suit :
  + Si vous souhaitez utiliser votre nom de projet pour le dossier ou le fichier ZIP de sortie de génération, ne renseignez pas le champ **Nom**. Sinon, entrez le nom. (Si vous souhaitez produire un fichier ZIP et que vous voulez que celui-ci ait une extension de fichier, veillez à l'inclure après le nom de fichier ZIP.)
  + Sélectionnez **Activer la gestion sémantique des versions** si vous voulez qu'un nom spécifié dans le fichier buildspec remplace le nom spécifié dans la console. Le nom figurant dans un fichier buildspec est calculé au moment de la génération et utilise le langage de commandes Shell. Par exemple, vous pouvez ajouter une date et une heure au nom de votre artefact afin qu'il soit toujours unique. Les noms d'artefact uniques empêchent les artefacts d'être écrasés. Pour de plus amples informations, veuillez consulter [Syntaxe d'un fichier buildspec](build-spec-ref.md#build-spec-ref-syntax).
  + Pour **Nom du compartiment**, choisissez le nom du compartiment de sortie.
  + Si vous avez sélectionné **Insérer des commandes de génération** précédemment dans cette procédure, pour **Fichiers de sortie**, saisissez les emplacements des fichiers de la génération que vous souhaitez placer dans le dossier ou le fichier ZIP de sortie de génération. Pour plusieurs emplacements, séparez ceux-ci avec une virgule (par exemple, `appspec.yml, target/my-app.jar`). Pour de plus amples informations, consultez la description de `files` dans [Syntaxe d'un fichier buildspec](build-spec-ref.md#build-spec-ref-syntax).
  + Si vous ne souhaitez pas que vos artefacts de génération soient chiffrés, choisissez **Remove artifacts encryption (Supprimer le chiffrement des artefacts)**.
Pour chaque ensemble d'artefacts secondaire que vous souhaitez :  

1. Pour **Artifact identifier (Identifiant d'artefact)**, saisissez une valeur de moins de 128 caractères et contenant uniquement des caractères alphanumériques et des traits de soulignement.

1. Choisissez **Add artifact (Ajouter un artefact)**.

1. Suivez les étapes précédentes pour configurer vos artefacts secondaires.

1. Choisissez **Save artifact (Enregistrer l'artefact)**.

**Configuration supplémentaire**    
**Clé de chiffrement**  
(Facultatif) Effectuez l'une des actions suivantes :  
+ Pour utiliser le Clé gérée par AWS for Amazon S3 dans votre compte afin de chiffrer les artefacts de sortie du build, laissez la **clé de chiffrement** vide. Il s’agit de l’option par défaut.
+ Pour utiliser une clé gérée par le client pour chiffrer les artefacts de sortie de génération, dans **Clé de chiffrement**, entrez l'ARN de la clé KMS. Utilisez le format `arn:aws:kms:region-ID:account-ID:key/key-ID`.  
**Type de cache**  
Pour **Cache type (Type de cache)**, choisissez l'une des valeurs suivantes :  
+ Si vous ne souhaitez pas utiliser un cache, choisissez **Aucun cache**.
+ Si vous souhaitez utiliser un cache Amazon S3, choisissez **Amazon S3**, puis procédez comme suit :
  + Pour **Compartiment**, choisissez le nom du compartiment S3 dans lequel le cache est stocké.
  + (Facultatif) Pour **le préfixe de chemin du cache**, entrez un préfixe de chemin Amazon S3. La valeur **Cache path prefix (Préfixe du chemin de cache)** est semblable à un nom de répertoire. Cela vous permet de stocker le cache sous le même répertoire au sein d'un compartiment. 
**Important**  
N'ajoutez pas de barre oblique de fin (/) à la fin du préfixe du chemin.
+  Si vous souhaitez utiliser un cache local, choisissez **Local**, puis sélectionnez une ou plusieurs modes de cache local. 
**Note**  
Le mode de cache de couche Docker est disponible pour Linux uniquement. Si vous choisissez ce mode, votre projet doit être exécuté en mode privilégié. 
L'utilisation d'un cache permet de gagner beaucoup de temps de génération, car les parties réutilisables de l'environnement de génération sont stockées dans le cache et utilisées d'une génération à l'autre. Pour de plus amples informations sur la spécification d'un cache dans le fichier de spécification de génération, consultez [Syntaxe d'un fichier buildspec](build-spec-ref.md#build-spec-ref-syntax). Pour plus d'informations sur la mise en cache, consultez [Des mises en cache pour améliorer les performances](build-caching.md). 

### Journaux
<a name="create-project-console-logs"></a>

Choisissez les journaux que vous souhaitez créer. Vous pouvez créer des CloudWatch journaux Amazon Logs, des journaux Amazon S3 ou les deux. 

**CloudWatch**  
Si vous souhaitez obtenir CloudWatch les journaux Amazon Logs :    
**CloudWatch journaux**  
Sélectionnez **Journaux CloudWatch **.  
**Nom du groupe**  
Entrez le nom de votre groupe de CloudWatch journaux Amazon Logs.  
**Nom du stream**  
Entrez le nom de votre flux de journal Amazon CloudWatch Logs. 

**S3**  
Si vous souhaitez obtenir les journaux Amazon S3 :    
**Journaux S3**  
Sélectionnez **Journaux S3**.  
**Compartiment**  
Choisissez le nom du compartiment S3 pour vos journaux.   
**Préfixe de chemin**  
Entrez le préfixe de vos journaux.   
**Désactiver le chiffrement des journaux S3**  
Sélectionnez si vous ne voulez pas que vos journaux S3 soient chiffrés. 

## Création d'un projet de génération (AWS CLI)
<a name="create-project-cli"></a>

Pour plus d'informations sur l'utilisation du AWS CLI with CodeBuild, consultez le[Référence des commandes en ligne](cmd-ref.md).

Pour créer un projet de CodeBuild construction à l'aide de AWS CLI, vous devez créer une structure de [projet](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Project.html) au format JSON, renseigner la structure et appeler la [https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html)commande pour créer le projet.

### Créez le fichier JSON
<a name="cp-cli-create-file"></a>

Créez un fichier JSON squelette à l'aide de la [https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html)commande, en utilisant l'`--generate-cli-skeleton`option :

```
aws codebuild create-project --generate-cli-skeleton > <json-file>
```

Cela crée un fichier JSON avec le chemin et le nom de fichier spécifiés par*<json-file>*.

### Renseignez le fichier JSON
<a name="cp-cli-fill-in-file"></a>

Modifiez les données JSON comme suit et enregistrez vos résultats.

```
{
  "name": "<project-name>",
  "description": "<description>",
  "source": {
    "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE",
    "location": "<source-location>",
    "gitCloneDepth": "<git-clone-depth>",
    "buildspec": "<buildspec>",
    "InsecureSsl": "<insecure-ssl>",
    "reportBuildStatus": "<report-build-status>",
    "buildStatusConfig": {
      "context": "<context>",
      "targetUrl": "<target-url>"
    },
    "gitSubmodulesConfig": {
      "fetchSubmodules": "<fetch-submodules>"
    },
    "auth": {
      "type": "<auth-type>",
      "resource": "<auth-resource>"
    },
    "sourceIdentifier": "<source-identifier>"
  },
  "secondarySources": [
    {
        "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE",
        "location": "<source-location>",
        "gitCloneDepth": "<git-clone-depth>",
        "buildspec": "<buildspec>",
        "InsecureSsl": "<insecure-ssl>",
        "reportBuildStatus": "<report-build-status>",
        "auth": {
          "type": "<auth-type>",
          "resource": "<auth-resource>"
        },
        "sourceIdentifier": "<source-identifier>"
    }
  ],
  "secondarySourceVersions": [
    {
      "sourceIdentifier": "<secondary-source-identifier>",
      "sourceVersion": "<secondary-source-version>"
    }
  ],
  "sourceVersion": "<source-version>",
  "artifacts": {
    "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS",
    "location": "<artifacts-location>",
    "path": "<artifacts-path>",
    "namespaceType": "<artifacts-namespacetype>",
    "name": "<artifacts-name>",
    "overrideArtifactName": "<override-artifact-name>",
    "packaging": "<artifacts-packaging>"
  },
  "secondaryArtifacts": [
    {
      "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS",
      "location": "<secondary-artifact-location>",
      "path": "<secondary-artifact-path>",
      "namespaceType": "<secondary-artifact-namespaceType>",
      "name": "<secondary-artifact-name>",
      "packaging": "<secondary-artifact-packaging>",
      "artifactIdentifier": "<secondary-artifact-identifier>"
    }
  ],
  "cache": {
    "type": "<cache-type>",
    "location": "<cache-location>",
    "mode": [
      "<cache-mode>"
    ]
  },
  "environment": {
    "type": "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "ARM_CONTAINER" | "WINDOWS_SERVER_2019_CONTAINER" | "WINDOWS_SERVER_2022_CONTAINER",
    "image": "<image>",
    "computeType": "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE",
    "certificate": "<certificate>",
    "environmentVariables": [
      {
        "name": "<environmentVariable-name>",
        "value": "<environmentVariable-value>",
        "type": "<environmentVariable-type>"
      }
    ],
    "registryCredential": [
      {
        "credential": "<credential-arn-or-name>",
        "credentialProvider": "<credential-provider>"
      }
    ],
    "imagePullCredentialsType": "CODEBUILD" | "SERVICE_ROLE",
    "privilegedMode": "<privileged-mode>"
  },
  "serviceRole": "<service-role>",
  "autoRetryLimit": <auto-retry-limit>,
  "timeoutInMinutes": <timeout>,
  "queuedTimeoutInMinutes": <queued-timeout>,
  "encryptionKey": "<encryption-key>",
  "tags": [
    {
      "key": "<tag-key>",
      "value": "<tag-value>"
    }
  ],
  "vpcConfig": {
    "securityGroupIds": [
         "<security-group-id>"
    ],
    "subnets": [
         "<subnet-id>"
    ],
    "vpcId": "<vpc-id>"
  },
  "badgeEnabled": "<badge-enabled>",
  "logsConfig": {
    "cloudWatchLogs": {
      "status": "<cloudwatch-logs-status>",
      "groupName": "<group-name>",
      "streamName": "<stream-name>"
    },
    "s3Logs": {
      "status": "<s3-logs-status>",
      "location": "<s3-logs-location>",
      "encryptionDisabled": "<s3-logs-encryption-disabled>"
    }
  },
  "fileSystemLocations": [
    {
      "type": "EFS",
      "location": "<EFS-DNS-name-1>:/<directory-path>",
      "mountPoint": "<mount-point>",
      "identifier": "<efs-identifier>",
      "mountOptions": "<efs-mount-options>"
    }
  ],
  "buildBatchConfig": {
    "serviceRole": "<batch-service-role>",
    "combineArtifacts": <combine-artifacts>,
    "restrictions": {
      "maximumBuildsAllowed": <max-builds>,
      "computeTypesAllowed": [
        "<compute-type>"
      ],
      "fleetsAllowed": [
        "<fleet-name>"
      ]
    },
    "timeoutInMins": <batch-timeout>,
    "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS"
  },
  "concurrentBuildLimit": <concurrent-build-limit>
}
```

Remplacez les éléments suivants :

#### **nom**
<a name="cli.project-name"></a>

Obligatoire. Nom de ce projet de génération. Ce nom doit être unique pour tous les projets de construction de votre AWS compte.

#### **description**
<a name="cli.description"></a>

Facultatif. Description de ce projet de génération.

#### **source**
<a name="cli.source"></a>

Obligatoire. Un [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html)objet qui contient des informations sur les paramètres du code source de ce projet de build. Après avoir ajouté un objet `source`, vous pouvez ajouter jusqu'à 12 autres sources à l'aide de [**Sources secondaires**](#cli.secondarysources). Il s’agit notamment des paramètres suivants :

**source/type**  <a name="cli.source.type"></a>
Obligatoire. Type de référentiel qui contient le code source à générer. Les valeurs valides sont les suivantes :  
+ `CODECOMMIT`
+ `CODEPIPELINE`
+ `GITHUB`
+ `GITHUB_ENTERPRISE`
+ `GITLAB`
+ `GITLAB_SELF_MANAGED`
+ `BITBUCKET`
+ `S3`
+ `NO_SOURCE`
Si vous utilisez `NO_SOURCE`, buildspec ne peut pas être un fichier, car le projet n'a pas de source. En revanche, vous devez utiliser l'attribut `buildspec` afin de spécifier une chaîne au format YAML pour votre buildspec. Pour de plus amples informations, veuillez consulter [Création d'un projet de construction sans source](no-source.md).

**source/ lieu**  <a name="cli.source.location"></a>
Obligatoire sauf si vous avez défini *<source-type>* sur`CODEPIPELINE`. Emplacement du code source pour le type de référentiel spécifié.  
+ Pour CodeCommit, l'URL du clone HTTPS vers le référentiel qui contient le code source et le fichier buildspec (par exemple,). `https://git-codecommit.<region-id>.amazonaws.com/v1/repos/<repo-name>`
+ Pour Amazon S3, le nom du compartiment d'entrée de construction, suivi du chemin et du nom du fichier ZIP contenant le code source et les spécifications de construction. Par exemple :
  + Pour un fichier ZIP situé à la racine du compartiment d'entrée :`<bucket-name>/<object-name>.zip`.
  + Pour un fichier ZIP situé dans un sous-dossier du compartiment d'entrée :`<bucket-name>/<subfoler-path>/<object-name>.zip`.
+ Pour GitHub, l'URL du clone HTTPS vers le référentiel contenant le code source et le fichier buildspec. L'URL doit contenir github.com. Vous devez connecter votre AWS compte à votre GitHub compte. Pour ce faire, utilisez la CodeBuild console pour créer un projet de génération.
  + Choisissez **Authorize application**. (Une fois connecté à votre GitHub compte, vous n'avez pas besoin de terminer la création du projet de construction. Vous pouvez fermer la CodeBuild console.) 
+ Pour GitHub Enterprise Server, URL du clone HTTP ou HTTPS du référentiel contenant le code source et le fichier buildspec. Vous devez également connecter votre AWS compte à votre compte GitHub Enterprise Server. Pour ce faire, utilisez la CodeBuild console pour créer un projet de génération.

  1. Créez un jeton d'accès personnel dans GitHub Enterprise Server.

  1. Copiez ce jeton dans votre presse-papiers afin de pouvoir l'utiliser lors de la création de votre CodeBuild projet. Pour plus d'informations, consultez la section [Création d'un jeton d'accès personnel pour la ligne de commande](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) sur le site Web d' GitHub aide. 

  1. Lorsque vous utilisez la console pour créer votre CodeBuild projet, dans **Source**, pour **Source provider**, choisissez **GitHubEnterprise**.

  1. Pour **Personal Access Token**, collez le jeton copié dans le Presse-papiers. Choisissez **Save Token**. Votre CodeBuild compte est désormais connecté à votre compte GitHub Enterprise Server.
+ Pour GitLab et GitLab autogéré, l'URL du clone HTTPS vers le référentiel contenant le code source et le fichier buildspec. Notez que si vous l'utilisez GitLab, l'URL doit contenir gitlab.com. Si vous utilisez l' GitLab autogéré, l'URL ne doit pas nécessairement contenir gitlab.com. Vous devez connecter votre AWS compte à votre compte GitLab ou à votre compte GitLab autogéré. Pour cela, utilisez la console CodeBuild pour créer un projet de génération.
  + Dans le volet de navigation des outils de développement, choisissez **Paramètres**, **Connexions**, puis **Créer une connexion**. Sur cette page, créez une connexion GitLab ou une connexion GitLab autogérée, puis choisissez **Connect to GitLab**.
+ Pour Bitbucket, l'URL de clone HTTPS vers le référentiel qui contient le code source et le fichier buildspec. L'URL doit contenir bitbucket.org. Vous devez également connecter votre AWS compte à votre compte Bitbucket. Pour ce faire, utilisez la CodeBuild console pour créer un projet de génération. 

  1. Lorsque vous utilisez la console pour vous connecter (ou vous reconnecter) à Bitbucket, dans la page Bitbucket **Confirm access to your account**, choisissez **Grant access**. (Une fois connecté à votre compte Bitbucket, vous n'avez pas besoin de terminer la création du projet de build. Vous pouvez fermer la CodeBuild console.) 
+ Pour AWS CodePipeline, ne spécifiez pas de `location` valeur pour`source`. CodePipeline ignore cette valeur car lorsque vous créez un pipeline dans CodePipeline, vous spécifiez l'emplacement du code source dans le stage Source du pipeline.

source/ **gitCloneDepth**  <a name="cli.source.gitclonedepth"></a>
Facultatif. Profondeur de l'historique à télécharger. La valeur minimum est de 0. Si cette valeur est égale à 0, supérieure à 25 ou non spécifiée, l'historique complet est téléchargé avec chaque projet de génération. Si votre type de source est Amazon S3, cette valeur n'est pas prise en charge.

**source/ buildspec**  <a name="cli.source.buildspec"></a>
Facultatif. Définition de spécification de génération ou fichier à utiliser. Si cette valeur n'est pas fournie ou qu'elle est définie sur une chaîne vide, le code source doit contenir un fichier `buildspec.yml` dans son répertoire racine. Si cette valeur est définie, il peut s'agir d'une définition de buildspec intégrée, du chemin d'accès à un autre fichier buildspec relatif au répertoire racine de votre source principale ou du chemin d'accès à un compartiment S3. Le bucket doit se trouver dans la même AWS région que le projet de construction. Spécifiez le fichier buildspec à l'aide de son nom ARN (par exemple, `arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml`). Pour de plus amples informations, veuillez consulter [Nom de fichier buildspec et emplacement de stockage](build-spec-ref.md#build-spec-ref-name-storage).

**source/ authentification**  <a name="cli.source.auth"></a>
Contient des informations sur les paramètres d'autorisation CodeBuild pour accéder au code source à créer.

**source/auteur/type**  <a name="cli.source.auth.type"></a>
Obligatoire. Le type d'autorisation à utiliser. Les valeurs valides sont :  
+ `OAUTH`
+ `CODECONNECTIONS`
+ `SECRETS_MANAGER`

**source/auteur/ressource**  <a name="cli.source.auth.resource"></a>
Facultatif. La valeur de la ressource qui s'applique au type d'autorisation spécifié. Il peut s'agir de l'ARN ou de l' CodeConnections ARN du Secrets Manager.

source/ **reportBuildStatus**  <a name="cli.source.reportbuildstatus"></a>
Indique si vous souhaitez envoyer le statut de début et de fin d'une génération à votre fournisseur de source. Si vous le définissez avec un fournisseur de source autre qu' GitHub GitHub Enterprise Server ou Bitbucket, un `invalidInputException` est émis.   
Pour pouvoir signaler l'état de construction au fournisseur de source, l'utilisateur associé au fournisseur de source doit avoir un accès en écriture au dépôt. Si l'utilisateur ne dispose pas d'un accès en écriture, l'état de construction ne peut pas être mis à jour. Pour de plus amples informations, veuillez consulter [Accès au fournisseur de source](access-tokens.md).

source/ **buildStatusConfig**  <a name="cli.source.buildstatusconfig"></a>
Contient des informations qui définissent la manière dont le CodeBuild projet de construction communique l'état de la construction au fournisseur source. Cette option n'est utilisée que lorsque le type de source est `GITHUB``GITHUB_ENTERPRISE`, ou`BITBUCKET`.    
**source/buildStatusConfig/contexte**  
Pour les sources Bitbucket, ce paramètre est utilisé pour le `name` paramètre figurant dans le statut de validation de Bitbucket. Pour les GitHub sources, ce paramètre est utilisé pour le `context` paramètre figurant dans l'état de GitHub validation.   
Par exemple, vous pouvez faire en sorte qu'ils `context` contiennent le numéro de version et le déclencheur webhook à l'aide des variables d' CodeBuildenvironnement :  

```
AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER
```
Il en résulte que le contexte apparaît comme suit pour la version \$124 déclenchée par un événement de pull request du webhook :  

```
AWS CodeBuild sample-project Build #24 - pr/8
```  
**source/buildStatusConfig/URL cible**  
Pour les sources Bitbucket, ce paramètre est utilisé pour le `url` paramètre figurant dans le statut de validation de Bitbucket. Pour les GitHub sources, ce paramètre est utilisé pour le `target_url` paramètre figurant dans l'état de GitHub validation.  
Par exemple, vous pouvez `targetUrl` définir le statut sur `https://aws.amazon.com/codebuild/<path to build>` et le statut de validation sera lié à cette URL.  
Vous pouvez également inclure des variables d' CodeBuild environnement dans le `targetUrl` pour ajouter des informations supplémentaires à l'URL. Par exemple, pour ajouter la région de construction à l'URL, définissez la valeur `targetUrl` sur :  

```
"targetUrl": "https://aws.amazon.com/codebuild/<path to build>?region=$AWS_REGION"
```
Si la région de construction l'est`us-east-2`, elle s'étendra à :   

```
https://aws.amazon.com/codebuild/<path to build>?region=us-east-2
```

source/ **gitSubmodulesConfig**  <a name="cli.source.gitsubmodulesconfig"></a>
Facultatif. Informations sur la configuration des sous-modules Git. Utilisé uniquement avec CodeCommit GitHub, GitHub Enterprise Server et Bitbucket.     
**source/gitSubmodulesConfig/FetchSubmodules**  
Définissez `fetchSubmodules` sur `true` si vous souhaitez inclure les sous-modules Git dans votre référentiel. Les sous-modules Git inclus doivent être configurés en tant que HTTPS.

source/ **InsecureSsl**  <a name="cli.source.insecuressl"></a>
Facultatif. Utilisé uniquement avec GitHub Enterprise Server. Définissez cette valeur sur `true` pour ignorer les avertissements TLS lors de la connexion au référentiel de votre projet GitHub Enterprise Server. La valeur par défaut est `false`. `InsecureSsl` doit être utilisé à des fins de test uniquement. Cette option ne doit pas être utilisée dans un environnement de production.

**source/ Identifiant de source**  <a name="cli.source.sourceidentifier"></a>
Identifiant défini par l'utilisateur pour la source du projet. Facultatif pour la source principale. Nécessaire pour les sources secondaires.

#### **Sources secondaires**
<a name="cli.secondarysources"></a>

Facultatif. Tableau d'[ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html)objets contenant des informations sur les sources secondaires d'un projet de construction. Vous pouvez ajouter jusqu'à 12 sources secondaires. Les `secondarySources` objets utilisent les mêmes propriétés que celles utilisées par l'[**source**](#cli.source)objet. Dans un objet source secondaire, le `sourceIdentifier` est obligatoire.

#### **secondarySourceVersions**
<a name="cli.secondarysourceversions"></a>

Facultatif. Tableau d’objets [ProjectSourceVersion](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSourceVersion.html). Si `secondarySourceVersions` est spécifié au niveau de la build, ils ont priorité sur cela. 

#### **Version de la source**
<a name="cli.sourceversion"></a>

Facultatif. Version de l'entrée de compilation à créer pour ce projet. Si elle n'est pas spécifiée, la dernière version est utilisée. Si cette valeur est spécifiée, elle doit être l'une des suivantes : 
+ Pour CodeCommit, l'ID de validation, la branche ou le tag Git à utiliser.
+ Pour GitHub, l'ID de validation, l'ID de pull request, le nom de branche ou le nom de balise correspondant à la version du code source que vous souhaitez créer. Si un ID de demande d'extraction est spécifié, il doit utiliser le format `pr/pull-request-ID` (par exemple, `pr/25`). Si un nom de branche est spécifié, l'ID de validation HEAD de la branche est utilisé. S’il n'est pas spécifié, l'ID de validation HEAD de la branche par défaut est utilisé. 
+ Pour GitLab, l'ID de validation, l'ID de pull request, le nom de la branche, le nom du tag ou la référence et un ID de validation. Pour de plus amples informations, veuillez consulter [Exemple de version source avec AWS CodeBuild](sample-source-version.md).
+ Pour Bitbucket, l'ID de validation, le nom de branche ou le nom de balise qui correspond à la version du code source à générer. Si un nom de branche est spécifié, l'ID de validation HEAD de la branche est utilisé. S’il n'est pas spécifié, l'ID de validation HEAD de la branche par défaut est utilisé. 
+ Pour Amazon S3, ID de version de l'objet qui représente le fichier ZIP d'entrée de génération à utiliser. 

Si `sourceVersion` est spécifié à la build, cette version est prioritaire sur cette `sourceVersion` (au niveau du projet). Pour de plus amples informations, veuillez consulter [Exemple de version source avec AWS CodeBuild](sample-source-version.md). 

#### **artefacts**
<a name="cli.artifacts"></a>

Obligatoire. Un [ProjectArtifacts](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html)objet qui contient des informations sur les paramètres d'artefact de sortie de ce projet de construction. Après avoir ajouté un objet `artifacts`, vous pouvez ajouter jusqu'à 12 autres artefacts à l'aide de [secondaryArtifacts](#cli.secondaryartifacts). Il s’agit notamment des paramètres suivants : 

**artéfacts/type**  <a name="cli.artifacts.type"></a>
Obligatoire. Le type d'objet de sortie de la build. Les valeurs valides sont :   
+ `CODEPIPELINE`
+ `NO_ARTIFACTS`
+ `S3`

**artéfacts/ emplacement**  <a name="cli.artifacts.location"></a>
Utilisé uniquement avec le type d'`S3`artefact. Non utilisé pour les autres types d'artefacts.  
Nom du bucket de sortie que vous avez créé ou identifié dans les prérequis. 

**artéfacts/ chemin**  <a name="cli.artifacts.path"></a>
Utilisé uniquement avec le type d'`S3`artefact. Non utilisé pour les autres types d'artefacts.  
Le chemin d'accès au compartiment de sortie où placer le fichier ou le dossier ZIP. Si vous ne spécifiez aucune valeur pour`path`, CodeBuild utilise `namespaceType` (si spécifié) et `name` pour déterminer le chemin et le nom du fichier ZIP ou du dossier de sortie de compilation. Par exemple, si vous spécifiez `MyPath` pour `path` et `MyArtifact.zip` pour`name`, le chemin et le nom seront`MyPath/MyArtifact.zip`. 

**artifacts/ NameSpaceType**  <a name="cli.artifacts.namespacetype"></a>
Utilisé uniquement avec le type d'`S3`artefact. Non utilisé pour les autres types d'artefacts.  
L'espace de noms du fichier ZIP ou du dossier de sortie de compilation. Les valeurs valides sont `BUILD_ID` et `NONE`. Utilisez `BUILD_ID` pour insérer l'ID de génération dans le chemin du fichier ZIP ou dossier de sortie de génération. Dans le cas contraire, utilisez `NONE`. Si vous ne spécifiez aucune valeur pour`namespaceType`, CodeBuild utilise `path` (si spécifié) et `name` pour déterminer le chemin et le nom du fichier ZIP ou du dossier de sortie de compilation. Par exemple, si vous spécifiez `MyPath` `BUILD_ID` pour `path``namespaceType`, pour et `MyArtifact.zip` pour`name`, le chemin et le nom seront`MyPath/build-ID/MyArtifact.zip`. 

artefacts/**nom**  <a name="cli.artifacts.name"></a>
Utilisé uniquement avec le type d'`S3`artefact. Non utilisé pour les autres types d'artefacts.  
Le nom du fichier ZIP ou du dossier de sortie de compilation qu'il contient`location`. Par exemple, si vous spécifiez `MyPath` pour `path` et `MyArtifact.zip` pour`name`, le chemin et le nom seront`MyPath/MyArtifact.zip`. 

artéfacts/ **overrideArtifactName**  <a name="cli.artifacts.overrideartifactname"></a>
Utilisé uniquement avec le type d'artefact S3. Non utilisé pour les autres types d'artefacts.  
Facultatif. S'il est défini sur`true`, le nom spécifié dans le `artifacts` bloc du fichier buildspec est remplacé. `name` Pour de plus amples informations, veuillez consulter [Référence de spécification de construction pour CodeBuild](build-spec-ref.md). 

**artéfacts/emballages**  <a name="cli.artifacts.packaging"></a>
Utilisé uniquement avec le type d'`S3`artefact. Non utilisé pour les autres types d'artefacts.   
Facultatif. Spécifie comment empaqueter les artefacts. Les valeurs autorisées sont les suivantes :    
NONE  
Créez un dossier contenant les artefacts de construction. C’est la valeur par défaut.   
ZIP  
Créez un fichier ZIP contenant les artefacts de construction.

#### secondaryArtifacts
<a name="cli.secondaryartifacts"></a>

Facultatif. Tableau d'[ProjectArtifacts](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html)objets contenant des informations sur les paramètres des artefacts secondaires d'un projet de construction. Vous pouvez ajouter jusqu'à 12 artefacts secondaires. `secondaryArtifacts` utilise un grand nombre de paramètres communs à l'objet [**artefacts**](#cli.artifacts). 

#### cache
<a name="cli.cache"></a>

Obligatoire. Un [ProjectCache](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectCache.html)objet qui contient des informations sur les paramètres de cache de ce projet de génération. Pour de plus amples informations, veuillez consulter [Constitutions de cache](build-caching.md). 

#### environment
<a name="cli.environment"></a>

Obligatoire. Un [ProjectEnvironment](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html)objet qui contient des informations sur les paramètres de l'environnement de construction de ce projet. Ces paramètres sont les suivants :

**environnement/type**  <a name="cli.environment.type"></a>
Obligatoire. Le type d'environnement de génération. Pour plus d'informations, reportez-vous à la section [Type](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html#CodeBuild-Type-ProjectEnvironment-type) dans la *référence de CodeBuild l'API*.

**environnement/image**  <a name="cli.environment.image"></a>
Obligatoire. Identifiant d'image Docker utilisé par cet environnement de génération. Généralement, cet identifiant est exprimé sous la forme *image-name* :*tag*. Par exemple, dans le référentiel Docker CodeBuild utilisé pour gérer ses images Docker, cela pourrait être le cas. `aws/codebuild/standard:5.0` Dans Docker Hub, `maven:3.3.9-jdk-8`. Dans Amazon ECR,`account-id.dkr.ecr.region-id.amazonaws.com/your-Amazon-ECR-repo-name:tag`. Pour de plus amples informations, veuillez consulter [Images Docker fournies par CodeBuild](build-env-ref-available.md). 

**environnement/ ComputeType**  <a name="cli.environment.computetype"></a>
Obligatoire. Spécifie les ressources de calcul utilisées par cet environnement de génération. *Pour plus d'informations, consultez [ComputeType](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html#CodeBuild-Type-ProjectEnvironment-computeType) dans CodeBuild le Guide de référence des API.*

**environnement/certificat**  <a name="cli.environment.certificate"></a>
Facultatif. L'ARN du compartiment Amazon S3, le préfixe de chemin et la clé d'objet contenant le certificat codé PEM. La clé d'objet peut être juste le fichier .pem ou un fichier .zip contenant le certificat codé PEM. Par exemple, si le nom de votre compartiment Amazon S3 est`<my-bucket>`, votre préfixe de chemin est `<cert>` et le nom de votre clé d'objet est`<certificate.pem>`, les formats acceptables pour `certificate` sont `<my-bucket/cert/certificate.pem>` ou`arn:aws:s3:::<my-bucket/cert/certificate.pem>`.

**environnement/ Variables d'environnement**  <a name="cli.environment.environmentvariables"></a>
Facultatif. Tableau d'[EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html)objets contenant les variables d'environnement que vous souhaitez spécifier pour cet environnement de génération. Chaque variable d'environnement est exprimée sous la forme d'un `name` objet contenant a`name`,`value`, et`type`. `value` `type`   
La console et AWS CLI les utilisateurs peuvent voir toutes les variables d'environnement. Si vous n'avez aucune inquiétude quant à la visibilité de votre variable d'environnement, définissez `name` et `value` et réglez `type` sur`PLAINTEXT`.  
Nous vous recommandons de stocker les variables d'environnement contenant des valeurs sensibles, telles qu'un identifiant de clé d' AWS accès, une clé d'accès AWS secrète ou un mot de passe, en tant que paramètre dans Amazon EC2 Systems Manager Parameter Store ou AWS Secrets Manager. Pour`name`, pour ce paramètre stocké, définissez un identifiant CodeBuild à référencer.   
Si vous utilisez Amazon EC2 Systems Manager Parameter Store, pour`value`, définissez le nom du paramètre tel qu'il est stocké dans le Parameter Store. Définissez `type` sur `PARAMETER_STORE`. À l'aide d'un paramètre nommé à `/CodeBuild/dockerLoginPassword` titre d'exemple, définissez `name` sur`LOGIN_PASSWORD`. Définissez `value` sur `/CodeBuild/dockerLoginPassword`. Définissez `type` sur `PARAMETER_STORE`.   
Si vous utilisez Amazon EC2 Systems Manager Parameter Store, nous vous recommandons de stocker les paramètres avec des noms de paramètres commençant par `/CodeBuild/` (par exemple,`/CodeBuild/dockerLoginPassword`). Vous pouvez utiliser la CodeBuild console pour créer un paramètre dans Amazon EC2 Systems Manager. Choisissez **Create parameter (Créer un paramètre)**, puis suivez les instructions de la boîte de dialogue. (Dans cette boîte de dialogue, pour la **clé KMS**, vous pouvez spécifier l'ARN d'une AWS KMS clé dans votre compte. Amazon EC2 Systems Manager utilise cette clé pour chiffrer la valeur du paramètre pendant le stockage et pour la déchiffrer lors de la récupération.) Si vous utilisez la CodeBuild console pour créer un paramètre, la console commence par le nom du paramètre `/CodeBuild/` tel qu'il est enregistré. Pour plus d'informations, consultez la [procédure pas à pas de la console Systems Manager Parameter [Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) et Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) dans le *guide de l'utilisateur d'Amazon EC2 Systems Manager*.  
Si votre projet de génération fait référence à des paramètres stockés dans Amazon EC2 Systems Manager Parameter Store, le rôle de service du projet de génération doit autoriser l'`ssm:GetParameters`action. Si vous avez sélectionné **Nouveau rôle de service** plus tôt, CodeBuild inclut cette action dans le rôle de service par défaut de votre projet de génération. En revanche, si vous avez choisi précédemment **Existing service role (Rôle de service existant)**, vous devez inclure séparément cette action dans votre rôle de service.  
Si votre projet de construction fait référence à des paramètres stockés dans Amazon EC2 Systems Manager Parameter Store avec des noms de paramètres qui ne commencent pas par`/CodeBuild/`, et que vous avez choisi **Nouveau rôle de service**, vous devez mettre à jour ce rôle de service pour autoriser l'accès aux noms de paramètres qui ne commencent pas par`/CodeBuild/`. En effet, ce rôle de service permet uniquement d'accéder aux noms de paramètres qui commencent par `/CodeBuild/`.  
Si vous choisissez **Nouveau rôle de service, le rôle** de service inclut l'autorisation de déchiffrer tous les paramètres de l'espace de `/CodeBuild/` noms dans le magasin de paramètres Amazon EC2 Systems Manager.  
Les variables d'environnement que vous définissez remplacent les variables d'environnement existantes. Par exemple, si l'image Docker contient déjà une variable d'environnement nommée `MY_VAR` avec la valeur `my_value` et que vous définissez une variable d'environnement nommée `MY_VAR` avec la valeur `other_value`, la valeur `my_value` est remplacée par `other_value`. De même, si l'image Docker contient déjà une variable d'environnement nommée `PATH` avec la valeur `/usr/local/sbin:/usr/local/bin` et que vous définissez une variable d'environnement nommée `PATH` avec la valeur `$PATH:/usr/share/ant/bin`, la valeur `/usr/local/sbin:/usr/local/bin` est remplacée par la valeur littérale `$PATH:/usr/share/ant/bin`.  
Ne définissez pas de variables d'environnement avec un nom commençant par `CODEBUILD_`. Ce préfixe est réservé à une utilisation interne .  
Si une variable d'environnement avec le même nom est définie dans plusieurs emplacements, la valeur est déterminée comme suit :  
+ La valeur de l'appel d'opération de démarrage de génération a une priorité plus élevée.
+ La valeur de la définition de projet de génération vient ensuite dans l'ordre des priorités.
+ La valeur figurant dans la déclaration buildspec a la priorité la plus faible.
Si vous utilisez Secrets Manager, pour`value`, définissez le nom du paramètre tel qu'il est enregistré dans Secrets Manager. Définissez `type` sur `SECRETS_MANAGER`. À l'aide d'un secret nommé à `/CodeBuild/dockerLoginPassword` titre d'exemple, définissez `name` sur`LOGIN_PASSWORD`. Définissez `value` sur `/CodeBuild/dockerLoginPassword`. Définissez `type` sur `SECRETS_MANAGER`.  
Si vous utilisez Secrets Manager, nous vous recommandons de stocker les secrets dont le nom commence par `/CodeBuild/` (par exemple,`/CodeBuild/dockerLoginPassword`). Pour plus d'informations, consultez [Présentation de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) dans le *Guide de l'utilisateur AWS Secrets Manager *.   
Si votre projet de génération fait référence à des secrets stockés dans Secrets Manager, le rôle de service du projet de génération doit autoriser l'`secretsmanager:GetSecretValue`action. Si vous avez sélectionné **Nouveau rôle de service** plus tôt, CodeBuild inclut cette action dans le rôle de service par défaut de votre projet de génération. En revanche, si vous avez choisi précédemment **Existing service role (Rôle de service existant)**, vous devez inclure séparément cette action dans votre rôle de service.   
Si votre projet de génération fait référence à des secrets stockés dans Secrets Manager avec des noms secrets qui ne commencent pas par`/CodeBuild/`, et que vous avez choisi **Nouveau rôle de service**, vous devez mettre à jour le rôle de service pour autoriser l'accès aux noms de secret qui ne commencent pas par`/CodeBuild/`. Cela est dû au fait que le rôle de service autorise l'accès uniquement aux noms secrets commençant par`/CodeBuild/`.  
Si vous choisissez **Nouveau rôle de service, le rôle** de service inclut l'autorisation de déchiffrer tous les secrets sous l'espace de `/CodeBuild/` noms dans le Gestionnaire de secrets.

**Environnement/RegistryCredential**  <a name="cli.environment.registrycredential"></a>
Facultatif. [RegistryCredential](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_RegistryCredential.html)Objet qui spécifie les informations d'identification permettant d'accéder à un registre Docker privé.     
**Environnement/registration/accréditation**  
Spécifie l'ARN ou le nom des informations d'identification créées à l'aide de AWS Managed Services. Vous pouvez utiliser le nom des informations d'identification uniquement si elles existent dans votre région actuelle.  
**Environnement/accréditation de registre/fournisseur d'informations d'identification**  
La seule valeur valide est `SECRETS_MANAGER`.
Lorsque cela est défini :   
+ `imagePullCredentials` doit être défini sur `SERVICE_ROLE`.
+ L'image ne peut pas être une image sélectionnée ou une image Amazon ECR.

**environnement/ Type imagePullCredentials**  <a name="cli.environment.imagepullcredentialstype"></a>
Facultatif. Le type d'informations d'identification CodeBuild utilisé pour extraire des images dans votre build. Deux valeurs sont valides :    
CONSTRUCTION DE CODE  
`CODEBUILD`indique qu'il CodeBuild utilise ses propres informations d'identification. Vous devez modifier votre politique de dépôt Amazon ECR pour faire confiance au principal du CodeBuild service.   
RÔLE\$1SERVICE  
Spécifie qui CodeBuild utilise le rôle de service de votre projet de construction. 
Lorsque vous utilisez une image de registre privé ou entre comptes, vous devez utiliser les informations d'identification de `SERVICE_ROLE`. Lorsque vous utilisez une image CodeBuild sélectionnée, vous devez utiliser des `CODEBUILD` informations d'identification. 

**environnement/ PrivilegedMode**  <a name="cli.environment.privilegedmode"></a>
Définissez cette valeur `true` uniquement si vous prévoyez d'utiliser ce projet de génération pour créer des images Docker. Sinon, toutes les générations associées qui tentent d'interagir avec le démon Docker échouent. Vous devez également démarrer le démon Docker afin que vos générations puissent interagir avec celui-ci. Pour cela, vous pouvez initialiser le démon Docker au cours de la phase `install` de votre fichier buildspec en exécutant les commandes de génération ci-après. N'exécutez pas ces commandes si vous avez spécifié une image d'environnement de génération fournie par CodeBuild avec la prise en charge Docker.  
Par défaut, le démon Docker est activé pour les versions non VPC. Si vous souhaitez utiliser des conteneurs Docker pour les builds VPC, [consultez Runtime Privilege et Linux](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) Capabilities sur le site Web de Docker Docs et activez le mode privilégié. De plus, Windows ne prend pas en charge le mode privilégié.

```
- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 &
- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
```

#### serviceRole
<a name="cli.servicerole"></a>

Obligatoire. L'ARN du rôle de service est CodeBuild utilisé pour interagir avec les services pour le compte de l'utilisateur (par exemple,`arn:aws:iam::account-id:role/role-name`).

#### autoRetryLimit
<a name="cli.autoretrylimit"></a>

Facultatif. Le nombre de tentatives automatiques supplémentaires après l'échec d'une compilation. Par exemple, si la limite de tentatives automatiques est définie sur 2, l'API CodeBuild appellera l'`RetryBuild`API pour réessayer automatiquement votre build jusqu'à 2 fois supplémentaires.

#### timeoutInMinutes
<a name="cli.timeoutinminutes"></a>

Facultatif. Le nombre de minutes, compris entre 5 et 2160 (36 heures), après lesquelles la construction CodeBuild s'arrête si elle n'est pas terminée. À défaut de précision, la valeur par défaut 60 est utilisée. Pour déterminer si et quand une compilation CodeBuild a été arrêtée en raison d'un délai d'attente, exécutez la `batch-get-builds` commande. Pour déterminer si la génération s'est arrêtée, recherchez dans la sortie une valeur `buildStatus` pour `FAILED`. Pour déterminer quand la génération a expiré, recherchez dans la sortie la valeur `endTime` associée à une valeur `phaseStatus` pour `TIMED_OUT`. 

#### queuedTimeoutInMinutes
<a name="cli.queuedtimeoutinminutes"></a>

Facultatif. Le nombre de minutes, compris entre 5 et 480 (8 heures), après quoi la construction CodeBuild s'arrête si elle est toujours en file d'attente. À défaut de précision, la valeur par défaut 60 est utilisée. 

#### encryptionKey
<a name="cli.encryptionkey"></a>

Facultatif. Alias ou ARN du fichier AWS KMS key utilisé par CodeBuild pour chiffrer la sortie de compilation. Si vous spécifiez un alias, utilisez le format `arn:aws:kms:region-ID:account-ID:key/key-ID` ou, s'il existe un alias, utilisez le format `alias/key-alias`. Si elle n'est pas spécifiée, la clé KMS AWS gérée pour Amazon S3 est utilisée.

#### balises
<a name="cli.tags"></a>

Facultatif. Un tableau d'objets [Tag](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html) qui fournissent les balises que vous souhaitez associer à ce projet de construction. Vous pouvez spécifier jusqu'à 50 balises. Ces balises peuvent être utilisées par n'importe quel AWS service prenant en charge les balises de projet de CodeBuild construction. Chaque balise est exprimée sous la forme d'un objet avec a `key` et `value` a.

#### vpcConfig
<a name="cli.vpcconfig"></a>

Facultatif. [VpcConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_VpcConfig.html)Objet contenant des informations sur la configuration VPC de votre projet. Pour de plus amples informations, veuillez consulter [Utilisation AWS CodeBuild avec Amazon Virtual Private Cloud](vpc-support.md).

Ces propriétés incluent : 

vpcId  
Obligatoire. L'ID VPC qui CodeBuild utilise. Exécutez cette commande pour obtenir une liste de tous les VPC de votre IDs région :  

```
aws ec2 describe-vpcs --region <region-ID>
```

sous-réseaux  
Obligatoire. Tableau de sous-réseaux IDs qui inclut les ressources utilisées par CodeBuild. Exécutez cette commande pour les obtenir IDs :  

```
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region <region-ID>
```

securityGroupIds  
Obligatoire. Tableau de groupes de sécurité IDs utilisé par CodeBuild pour autoriser l'accès aux ressources du VPC. Exécutez cette commande pour les obtenir IDs :  

```
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" --<region-ID>
```

#### badgeEnabled
<a name="cli.badgeenabled"></a>

Facultatif. Spécifie s'il faut inclure des badges de construction dans votre CodeBuild projet. Définissez sur `true` pour activer la création de badges, ou `false` autre. Pour de plus amples informations, veuillez consulter [Créez un échantillon de badges avec CodeBuild](sample-build-badges.md).

#### Configuration des journaux
<a name="cli.logsconfig"></a>

Un [LogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_LogsConfig.html)objet qui contient des informations sur l'emplacement des journaux de cette version.

Configuration des journaux/ **cloudWatchLogs**  <a name="cli.logsconfig.cloudwatchlogs"></a>
[CloudWatchLogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CloudWatchLogsConfig.html)Objet contenant des informations sur le transfert de CloudWatch journaux vers Logs.

**LogsConfig/ S3 Logs**  <a name="cli.logsconfig.s3logs"></a>
Un LogsConfig objet [S3](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_S3LogsConfig.html) qui contient des informations sur le transfert de journaux vers Amazon S3.

#### fileSystemLocations
<a name="cli.filesystemlocations"></a>

Facultatif. Tableau d'[ProjectFileSystemsLocation](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectFileSystemLocation.html)objets contenant des informations sur votre configuration Amazon EFS. 

#### buildBatchConfig
<a name="cli.buildbatchconfig"></a>

Facultatif. L'`buildBatchConfig`objet est une [ProjectBuildBatchConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectBuildBatchConfig.html)structure qui contient les informations de configuration de génération par lots pour le projet.

buildBatchConfig/**ServiceRole**  
L'ARN du rôle de service pour le projet de génération par lots.

buildBatchConfig/**Combinez des artefacts**  
Valeur booléenne qui indique s'il faut combiner les artefacts de construction pour la construction par lots dans un seul emplacement d'artefact.

buildBatchConfig/restrictions/ **maximumBuildsAllowed**  
Le nombre maximum de builds autorisés.

buildBatchConfig/restrictions/ **computeTypesAllowed**  
Tableau de chaînes qui spécifient les types de calcul autorisés pour la construction par lots. Reportez-vous [à la section Types de calcul de l'environnement](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) de génération pour ces valeurs. 

buildBatchConfig**/restrictions/ Flottes autorisées**  
Tableau de chaînes qui spécifient les flottes autorisées pour la génération par lots. Voir [Exécuter des builds sur des flottes de capacité réservée](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html) pour plus d'informations. 

buildBatchConfig/**timeoutInMinutes**  
Durée maximale, en minutes, pendant laquelle la génération par lots doit être terminée.

buildBatchConfig/**batchReportMode**   
Spécifie comment les rapports d'état de compilation sont envoyés au fournisseur source pour la compilation par lots. Les valeurs valides sont les suivantes :    
`REPORT_AGGREGATED_BATCH`  
(Par défaut) Regrouper tous les états de compilation dans un seul rapport d'état.  
`REPORT_INDIVIDUAL_BUILDS`  
Envoyer un rapport d'état distinct pour chaque compilation individuelle.

#### concurrentBuildLimit
<a name="cli.concurrentbuildlimit"></a>

Nombre maximal de générations simultanées autorisées pour ce projet.

Les nouvelles générations ne sont démarrées que si le nombre actuel de générations est inférieur ou égal à cette limite. Si le nombre actuel de générations atteint cette limite, les nouvelles générations sont limitées et ne sont pas exécutées.

### Création du projet
<a name="cp-cli-create-project"></a>

Pour créer le projet, réexécutez la **[https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html)** commande en passant votre fichier JSON :

```
aws codebuild create-project --cli-input-json file://<json-file>
```

En cas de succès, la représentation JSON d'un objet [Project](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Project.html) apparaît dans la sortie de la console. Voir la [syntaxe de CreateProject réponse](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_ResponseSyntax) pour un exemple de ces données.

A l'exception du nom de projet de génération, vous pouvez modifier les paramètres du projet de génération ultérieurement. Pour de plus amples informations, veuillez consulter [Modification des paramètres d'un projet de génération (AWS CLI)](change-project.md#change-project-cli).

Pour démarrer l'exécution d'une génération, consultez [Exécution d'une génération (AWS CLI)](run-build-cli.md).

Si votre code source est stocké dans un GitHub référentiel et que vous CodeBuild souhaitez le reconstruire chaque fois qu'une modification de code est envoyée au référentiel, consultez[Lancement automatique de l'exécution de générations (AWS CLI)](run-build-cli-auto-start.md).

## Création d'un projet de génération (AWS SDKs)
<a name="create-project-sdks"></a>

Pour plus d'informations sur l'utilisation AWS CodeBuild avec le AWS SDKs, consultez le[AWS SDKs et référence des outils](sdk-ref.md).

## Création d'un projet de génération (CloudFormation)
<a name="create-project-cloud-formation"></a>

Pour plus d'informations sur l'utilisation AWS CodeBuild avec CloudFormation, consultez [le CloudFormation modèle figurant CodeBuild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) dans le *guide de AWS CloudFormation l'utilisateur*.