

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.

# Exemple d'Amazon Elastic File System pour AWS CodeBuild
<a name="sample-efs"></a>

 Vous souhaiterez peut-être créer vos AWS CodeBuild versions sur Amazon Elastic File System, un service de fichiers partagé évolutif pour les instances Amazon EC2. La capacité de stockage d'Amazon EFS étant élastique, elle augmente ou diminue au fur et à mesure que des fichiers sont ajoutés ou supprimés. Il propose une interface de services Web simple, qui vous permet de créer et de configurer des systèmes de fichiers. Elle gère également l'ensemble de l'infrastructure de stockage de fichiers à votre place, de sorte que vous n'ayez pas besoin de vous préoccuper du déploiement, de l'application de correctifs ou de la maintenance des configurations de systèmes de fichiers. Pour plus d'informations, consultez [Qu'est-ce qu'Amazon Elastic File System ?](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) dans le *guide de l'utilisateur d'Amazon Elastic File System*. 

 Cet exemple explique comment configurer un CodeBuild projet afin qu'il soit monté puis créé une application Java sur un système de fichiers Amazon EFS. Avant de commencer, vous devez disposer d'une application Java prête à être créée et téléchargée dans un compartiment d'entrée S3 AWS CodeCommit GitHub, un serveur GitHub d'entreprise ou un référentiel Bitbucket. 

Les données en transit pour votre système de fichiers sont chiffrées. Pour chiffrer les données en transit à l'aide d'une autre image, veuillez consulter [Chiffrement des données en transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html). 

**Topics**
+ [Utilisation AWS CodeBuild avec Amazon Elastic File System](#sample-efs-high-level-steps)
+ [Résoudre les problèmes liés à l'intégration Amazon EFS](sample-efs-troubleshooting.md)

## Utilisation AWS CodeBuild avec Amazon Elastic File System
<a name="sample-efs-high-level-steps"></a>

L'exemple couvre les quatre étapes de haut niveau requises pour utiliser Amazon EFS avec AWS CodeBuild. Il s'agit des options suivantes : 

1. Créez un cloud privé virtuel (VPC) dans votre AWS compte. 

1. Créez un système de fichiers qui utilise ce VPC. 

1. Créez et créez un CodeBuild projet qui utilise le VPC. Le CodeBuild projet utilise les éléments suivants pour identifier le système de fichiers :
   +  Un identificateur de système de fichiers unique. Vous choisissez cet identificateur lorsque vous spécifiez le système de fichiers dans votre projet de génération.
   + ID du système de fichiers. L'ID s'affiche lorsque vous consultez votre système de fichiers dans la console Amazon EFS.
   +  Un point de montage. Il s'agit d'un répertoire dans votre conteneur Docker qui monte le système de fichiers. 
   + Des options de montage. Elles incluent des détails sur la façon de monter le système de fichiers.

1. Passez en revue le projet de construction pour vous assurer que les fichiers de projet et les variables appropriés ont été générés.

**Note**  
 Un système de fichiers créé dans Amazon EFS est uniquement pris en charge sur les plateformes Linux. 

 

**Topics**
+ [Étape 1 : créer un VPC à l'aide de CloudFormation](#sample-efs-create-vpc)
+ [Étape 2 : créer un système de fichiers Amazon Elastic File System avec votre VPC](#sample-efs-create-efs)
+ [Étape 3 : créer un CodeBuild projet à utiliser avec Amazon EFS](#sample-efs-create-acb)
+ [Étape 4 : Passez en revue le projet de construction](#sample-efs-summary)

### Étape 1 : créer un VPC à l'aide de CloudFormation
<a name="sample-efs-create-vpc"></a>

 Créez votre VPC à l'aide d'un CloudFormation modèle. 

1.  Suivez les instructions d'utilisation [CloudFormation Modèle VPC](cloudformation-vpc-template.md) pour CloudFormation créer un VPC. 
**Note**  
 Le VPC créé par ce CloudFormation modèle possède deux sous-réseaux privés et deux sous-réseaux publics. Vous ne devez utiliser des sous-réseaux privés que lorsque vous montez le système AWS CodeBuild de fichiers que vous avez créé dans Amazon EFS. Si vous utilisez l'un des sous-réseaux publics, la génération échoue. 

1. Connectez-vous à la console Amazon VPC AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1.  Choisissez le VPC avec lequel vous avez créé. CloudFormation

1. Dans l'onglet **Description**, notez le nom de votre VPC et son ID. Les deux seront requis lorsque vous créerez votre projet AWS CodeBuild plus tard dans cet exemple. 

### Étape 2 : créer un système de fichiers Amazon Elastic File System avec votre VPC
<a name="sample-efs-create-efs"></a>

 Créez un système de fichiers Amazon EFS simple pour cet exemple à l'aide du VPC que vous avez créé précédemment. 

1. Connectez-vous à la console Amazon EFS AWS Management Console et ouvrez-la à l'adresse [ https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/).

1.  Choisissez **Create file system** (Créer un système de fichiers). 

1.  Dans **VPC**, choisissez le nom de VPC que vous avez noté précédemment dans cet exemple. 

1.  Conservez les Zones de disponibilité associées à vos sous-réseaux sélectionnés. 

1.  Choisissez **Étape suivante**. 

1.  Dans **Ajouter des balises**, pour la clé **Nom** par défaut, dans **Valeur**, entrez le nom de votre système de fichiers Amazon EFS. 

1.  Conservez **Bursting (Transmission en rafales)** et **General Purpose (Usage général)** sélectionnés en tant que modes de performance et de débit par défaut, puis choisissez **Étape suivante**. 

1. Pour **Configure client access (Configurer l'accès client)**, choisissez **Next Step (Étape suivante)**.

1.  Sélectionnez **Créer un système de fichiers**. 

1.  (Facultatif) Nous vous recommandons d'ajouter une politique à votre système de fichiers Amazon EFS qui applique le chiffrement des données en transit. Dans la console Amazon EFS, choisissez la **politique du système de fichiers**, choisissez **Modifier**, cochez la case intitulée **Appliquer le chiffrement en transit pour tous les clients**, puis sélectionnez **Enregistrer**.

### Étape 3 : créer un CodeBuild projet à utiliser avec Amazon EFS
<a name="sample-efs-create-acb"></a>

 Créez un AWS CodeBuild projet qui utilise le VPC que vous avez créé précédemment dans cet exemple. Lorsque le build est exécuté, il monte le système de fichiers Amazon EFS créé précédemment. Ensuite, elle stocke le fichier .jar créé par votre application Java dans le répertoire de point de montage de votre système de fichiers.

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

1.  Choisissez **Build projects (Projets de génération)** dans le volet de navigation, puis choisissez **Create a build project (Créer un projet de build)**. 

1.  Dans **Project name (Nom de projet)**, saisissez un nom pour votre projet. 

1.  Dans **Source provider (Fournisseur de source)**, choisissez le référentiel qui contient l'application Java que vous voulez générer. 

1.  Entrez les informations, telles que l'URL du référentiel, CodeBuild qui permettent de localiser votre application. Les options sont différentes pour chaque fournisseur de source. Pour de plus amples informations, veuillez consulter [Choose source provider](create-project.md#create-project-source-provider). 

1.  Dans **Image de l'environnement**, choisissez **Image gérée**. 

1.  Dans **Operating system (Système d'exploitation)**, choisissez **Amazon Linux 2**. 

1. Dans **Runtime(s) (Exécution(s))**, sélectionnez **Standard**. 

1.  Dans **Image**, choisissez **aws/codebuild/amazonlinux-x86\$164-standard:4.0**. 

1.  Dans **Environment type (Type d'environnement)**, choisissez **Linux**. 

1.  Dans **Service role (Rôle de service)**, choisissez **New service role (Nouveau rôle de service)**. Dans **Nom du rôle**, entrez le nom du rôle CodeBuild créé pour vous. 

1. Développez **Additional configuration (Configuration supplémentaire)**.

1.  Sélectionnez **Enable this flag if you want to build Docker images or want your builds to get elevated privileges (Activer cet indicateur si vous souhaitez créer des images Docker ou que vos builds reçoivent des privilèges élevés)**.
**Note**  
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é.

1.  Choisissez l'ID de VPC dans **VPC**. 

1.  Dans **Subnets (Sous-réseaux)**, choisissez un ou plusieurs sous-réseaux privés associés à votre VPC. Vous devez utiliser des sous-réseaux privés dans une version qui monte un système de fichiers Amazon EFS. La génération échoue si vous utilisez un sous-réseau public. 

1.  Pour **Security Groups (Groupes de sécurité)**, choisissez le groupe de sécurité par défaut.

1.  Dans **File systems (Systèmes de fichiers)**, entrez les informations suivantes :
   + Pour **Identifier (Identificateur)**, entrez un identificateur de système de fichiers unique. Il doit comporter moins de 129 caractères et ne contenir que des caractères alphanumériques et des traits de soulignement. CodeBuild utilise cet identificateur pour créer une variable d'environnement qui identifie le système de fichiers élastique. Le format de variable d'environnement est `CODEBUILD_<file_system_identifier>` en lettres majuscules. Par exemple, si vous entrez `my_efs`, la variable d'environnement est `CODEBUILD_MY_EFS`. 
   + Pour **ID**, choisissez l'ID du système de fichiers. 
   + (Facultatif) Entrez un répertoire dans le système de fichiers. CodeBuild monte ce répertoire. Si vous laissez **Directory path (Chemin du répertoire)** vide, CodeBuild monte le système de fichiers complet. Le chemin est relatif à la racine du système de fichiers. 
   + Pour **Point de montage**, entrez le chemin absolu du répertoire dans votre conteneur de compilation où le système de fichiers est monté. Si ce répertoire n'existe pas, CodeBuild créez-le lors de la compilation. 
   + (Facultatif) Entrez des options de montage. Si vous laissez **le champ Options de montage** vide, CodeBuild utilise ses options de montage par défaut :

     ```
     nfsvers=4.1
     rsize=1048576
     wsize=1048576
     hard
     timeo=600
     retrans=2
     ```

     Pour plus d'informations, consultez les [options de montage NFS recommandées](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html) dans le *guide de l'utilisateur d'Amazon Elastic File System*. 

1.  Pour **Build spécification (Spécification de génération)**, choisissez **Insert build commands (Insérer les commandes de génération)**, puis choisissez **Switch to editor (Basculer vers l'éditeur)**. 

1.  Entrez les commandes de spécification de construction suivantes dans l'éditeur. Remplacez `<file_system_identifier>` par l'identificateur que vous avez entré à l'étape 17. Utilisez des lettres majuscules (par exemple, `CODEBUILD_MY_EFS`).

   ```
   version: 0.2
   phases:
     install:
       runtime-versions:
         java: corretto11    
     build:
       commands:
         - mvn compile -Dgpg.skip=true -Dmaven.repo.local=$CODEBUILD_<file_system_identifier>
   ```

1.  Utilisez les valeurs par défaut pour les autres paramètres, puis choisissez **Create build project (Créer un projet de build)**. Lorsque votre génération est terminée, la page de la console correspondant à votre projet est affichée. 

1.  Choisissez **Démarrer la génération**. 

### Étape 4 : Passez en revue le projet de construction
<a name="sample-efs-summary"></a>



 Une fois votre AWS CodeBuild projet créé : 
+  Vous disposez d'un fichier .jar créé par votre application Java qui est intégré à votre système de fichiers Amazon EFS dans le répertoire de votre point de montage. 
+  Une variable d'environnement qui identifie votre système de fichiers est créée à l'aide de l'identificateur de système de fichiers que vous avez entré lors de la création du projet. 

 Pour plus d'informations, consultez la section [Montage de systèmes de fichiers](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) dans le manuel *Amazon Elastic File System User Guide*. 

# Résoudre les problèmes liés à l'intégration Amazon EFS
<a name="sample-efs-troubleshooting"></a>

Les erreurs suivantes sont susceptibles de se produire lors de la configuration d'Amazon EFS avec CodeBuild.

**Topics**
+ [CLIENT\$1ERROR : échec du montage de « 127.0.0.1 :/». Autorisation refusée](#sample-efs-troubleshooting.permission-denied)
+ [CLIENT\$1ERROR : échec du montage de '127.0.0.1 :/'. Connexion réinitialisée par un pair](#sample-efs-troubleshooting.connection-reset)
+ [VPC\$1CLIENT\$1ERROR : erreur EC2 inattendue : UnauthorizedOperation](#sample-efs-troubleshooting.unauthorized-operation)

## CLIENT\$1ERROR : échec du montage de « 127.0.0.1 :/». Autorisation refusée
<a name="sample-efs-troubleshooting.permission-denied"></a>

L'autorisation IAM n'est pas prise en charge pour le montage d'Amazon EFS avec CodeBuild. Si vous utilisez une politique de système de fichiers Amazon EFS personnalisée, vous devez accorder un accès en lecture et en écriture à tous les principaux IAM. Par exemple :

```
"Principal": {
  "AWS": "*"
}
```

## CLIENT\$1ERROR : échec du montage de '127.0.0.1 :/'. Connexion réinitialisée par un pair
<a name="sample-efs-troubleshooting.connection-reset"></a>

Cette erreur peut avoir deux causes :
+ Le sous-réseau CodeBuild VPC se trouve dans une zone de disponibilité différente de celle de la cible de montage Amazon EFS. Vous pouvez résoudre ce problème en ajoutant un sous-réseau VPC dans la même zone de disponibilité que la cible de montage Amazon EFS.
+ Le groupe de sécurité n'est pas autorisé à communiquer avec Amazon EFS. Vous pouvez résoudre ce problème en ajoutant une règle entrante pour autoriser tout le trafic provenant du VPC (ajoutez le bloc CIDR principal pour votre VPC) ou du groupe de sécurité lui-même.

## VPC\$1CLIENT\$1ERROR : erreur EC2 inattendue : UnauthorizedOperation
<a name="sample-efs-troubleshooting.unauthorized-operation"></a>

Cette erreur se produit lorsque tous les sous-réseaux de votre configuration VPC pour CodeBuild le projet sont des sous-réseaux publics. Vous devez disposer d'au moins un sous-réseau privé dans le VPC pour garantir la connectivité réseau. 