

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.

# Modification de la spécification de construction
<a name="edit-build-settings"></a>

Vous pouvez personnaliser les paramètres de compilation d'une application en modifiant la spécification de construction (buildspec) dans la console Amplify. Les paramètres de construction sont appliqués à toutes les branches de votre application, à l'exception des branches dont un `amplify.yml` fichier est enregistré dans le référentiel Git.

**Pour modifier les paramètres de compilation dans la console Amplify**

1. Connectez-vous à la console [Amplify AWS Management Console](https://console.aws.amazon.com/amplify/) et ouvrez-la.

1. Choisissez l'application dont vous souhaitez modifier les paramètres de compilation.

1. Dans le volet de navigation, choisissez **Hosting**, puis **Build settings**.

1. Sur la page **des paramètres de construction**, dans la section **Spécification de construction de l'application**, choisissez **Modifier**.

1. Dans la fenêtre **Modifier les spécifications de construction**, entrez vos mises à jour.

1. Choisissez **Enregistrer**.

Vous pouvez utiliser les exemples décrits dans les rubriques suivantes pour mettre à jour vos paramètres de compilation pour des scénarios spécifiques.

**Topics**
+ [Définition des paramètres de construction spécifiques à une branche à l'aide de scripts](#branch-specific-build-settings)
+ [Configuration d'une commande pour accéder à un sous-dossier](#navigating-to-a-subfolder)
+ [Déploiement du backend avec le front-end d'une application de première génération](#frontend-with-backend)
+ [Configuration du dossier de sortie](#setting-the-output-folder)
+ [Installation de packages dans le cadre d'une compilation](#installing-packages-as-part-of-your-build)
+ [Utilisation d'un registre npm privé](#using-a-private-npm-registry)
+ [Installation de packages de système d'exploitation](#installing-os-packages)
+ [Configuration du stockage des valeurs clés pour chaque version](#key-value-storage-for-every-build)
+ [Ignorer le build pour un commit](#skip-build-for-a-commit)
+ [Désactiver les builds automatiques à chaque commit](#disable-automatic-builds)
+ [Configuration de la création et du déploiement d'un frontend basé sur Diff](#enable-diff-deploy)
+ [Configuration de versions de backend basées sur les différences pour une application de première génération](#enable-diff-backend)

## Définition des paramètres de construction spécifiques à une branche à l'aide de scripts
<a name="branch-specific-build-settings"></a>

Vous pouvez utiliser des scripts shell bash pour définir des paramètres de build spécifiques à la branche. Par exemple, le script suivant utilise la variable d'environnement système *$ AWS\_BRANCH* pour exécuter un ensemble de commandes si le nom de la branche est *main* et un autre ensemble de commandes si le nom de la branche est *dev*.

```
frontend:
  phases:
    build:
      commands:
        - if [ "${AWS_BRANCH}" = "main" ]; then echo "main branch"; fi
        - if [ "${AWS_BRANCH}" = "dev" ]; then echo "dev branch"; fi
```

## Configuration d'une commande pour accéder à un sous-dossier
<a name="navigating-to-a-subfolder"></a>

Pour monorepos, les utilisateurs veulent pouvoir accéder à un `cd` dossier pour exécuter le build. Une fois que vous avez exécuté la `cd` commande, elle s'applique à toutes les étapes de votre build, vous n'avez donc pas besoin de répéter la commande en plusieurs phases.

```
version: 1
env:
  variables:
    key: value
frontend:
  phases:
    preBuild:
      commands:
        - cd react-app
        - npm ci
    build:
      commands:
        - npm run build
```

## Déploiement du backend avec le front-end d'une application de première génération
<a name="frontend-with-backend"></a>

**Note**  
Cette section s'applique uniquement aux applications Amplify Gen 1. Un backend Gen 1 est créé à l'aide d'Amplify Studio et de l'interface de ligne de commande (CLI) Amplify.

La `amplifyPush` commande est un script d'assistance qui vous aide dans les déploiements du backend. Les paramètres de build ci-dessous déterminent automatiquement l’environnement backend approprié à déployer pour la branche active.

```
version: 1
env:
  variables:
    key: value
backend:
  phases:
    build:
      commands:
        - amplifyPush --simple
```

## Configuration du dossier de sortie
<a name="setting-the-output-folder"></a>

Les paramètres de génération suivants définissent le répertoire de sortie sur le dossier public.

```
frontend:
  phases:
    commands:
      build:
        - yarn run build
  artifacts:
    baseDirectory: public
```

## Installation de packages dans le cadre d'une compilation
<a name="installing-packages-as-part-of-your-build"></a>

Vous pouvez utiliser les `yarn` commandes `npm` or pour installer des packages lors de la compilation.

```
frontend:
  phases:
    build:
      commands:
        - npm install -g <package>
        - <package> deploy
        - yarn run build
  artifacts:
    baseDirectory: public
```

## Utilisation d'un registre npm privé
<a name="using-a-private-npm-registry"></a>

Vous pouvez ajouter des références à un registre privé dans vos paramètres de génération ou l'ajouter en tant que variable d'environnement.

```
build:
  phases:
    preBuild:
      commands:
        - npm config set <key> <value>
        - npm config set registry https://registry.npmjs.org
        - npm config set always-auth true
        - npm config set email hello@amplifyapp.com
        - yarn install
```

## Installation de packages de système d'exploitation
<a name="installing-os-packages"></a>

 AL2023 L'image d'Amplify exécute votre code avec un nom d'utilisateur non privilégié. `amplify` Amplify accorde à cet utilisateur les privilèges nécessaires pour exécuter des commandes du système d'exploitation à l'aide de la commande Linux. `sudo` Si vous souhaitez installer des packages de système d'exploitation pour les dépendances manquantes, vous pouvez utiliser des commandes telles que `yum` et `rpm` avec`sudo`.

L'exemple de section de construction suivant illustre la syntaxe d'installation d'un package de système d'exploitation à l'aide de la `sudo` commande.

```
build:
  phases:
    preBuild:
      commands:
        - sudo yum install -y <package>
```

## Configuration du stockage des valeurs clés pour chaque version
<a name="key-value-storage-for-every-build"></a>

`envCache`Fournit un stockage des valeurs clés au moment de la construction. Les valeurs stockées dans le ne `envCache` peuvent être modifiées que lors d'une construction et peuvent être réutilisées lors de la prochaine génération. À l'aide de`envCache`, nous pouvons stocker des informations sur l'environnement déployé et les mettre à la disposition du conteneur de construction lors de versions successives. Contrairement aux valeurs stockées dans le`envCache`, les modifications apportées aux variables d'environnement au cours d'une génération ne sont pas conservées dans les versions futures.

Exemple d’utilisation :

```
envCache --set <key> <value>
envCache --get <key>
```

## Ignorer le build pour un commit
<a name="skip-build-for-a-commit"></a>

Pour ignorer une compilation automatique sur un commit particulier, incluez le texte **[skip-cd]** à la fin du message de validation.

## Désactiver les builds automatiques à chaque commit
<a name="disable-automatic-builds"></a>

Vous pouvez configurer Amplify pour désactiver les compilations automatiques à chaque validation de code. Pour le configurer, choisissez **Paramètres de l'application**, **Paramètres** des **succursales, puis recherchez la section Branches** qui répertorie les succursales connectées. Sélectionnez une branche, puis choisissez **Actions**, **Désactiver la construction automatique**. Les nouvelles validations vers cette branche ne démarreront plus une nouvelle version.

## Configuration de la création et du déploiement d'un frontend basé sur Diff
<a name="enable-diff-deploy"></a>

Vous pouvez configurer Amplify pour utiliser des versions frontales basées sur les différences. Si cette option est activée, au début de chaque build, Amplify tente d'exécuter une différence sur votre `appRoot` dossier ou sur le `/src/` dossier par défaut. Si Amplify ne trouve aucune différence, il ignore les étapes de création, de test (si configuré) et de déploiement du frontend, et ne met pas à jour votre application hébergée.

**Pour configurer la création et le déploiement d'un frontend basé sur Diff**

1. Connectez-vous à la console [Amplify AWS Management Console](https://console.aws.amazon.com/amplify/) et ouvrez-la.

1. Choisissez l'application pour laquelle configurer la création et le déploiement du frontend basé sur les différences.

1. Dans le volet de navigation, choisissez **Hosting**, **Environment variables**.

1. Dans la section **Variables d'environnement**, sélectionnez **Gérer les variables**.

1. La procédure de configuration de la variable d'environnement varie selon que vous activez ou désactivez la création et le déploiement du frontend basé sur le diff.
   + Pour activer la création et le déploiement d'une interface basée sur les différences

     1. Dans la section **Gérer les variables**, sous **Variable**, entrez`AMPLIFY_DIFF_DEPLOY`.

     1. Pour le champ **Valeur**, saisissez `true`.
   + Pour désactiver la création et le déploiement du frontend basé sur les différences

     1. Effectuez l’une des actions suivantes :
       + Dans la section **Gérer les variables**, recherchez`AMPLIFY_DIFF_DEPLOY`. Pour le champ **Valeur**, saisissez `false`.
       + Supprimez la variable d'`AMPLIFY_DIFF_DEPLOY`environnement.

1. Choisissez **Enregistrer**.

Vous pouvez éventuellement définir la variable d'`AMPLIFY_DIFF_DEPLOY_ROOT`environnement pour remplacer le chemin par défaut par un chemin relatif à la racine de votre dépôt, tel que. `dist`

## Configuration de versions de backend basées sur les différences pour une application de première génération
<a name="enable-diff-backend"></a>

**Note**  
Cette section s'applique uniquement aux applications Amplify Gen 1. Un backend Gen 1 est créé à l'aide d'Amplify Studio et de l'interface de ligne de commande (CLI) Amplify.

Vous pouvez configurer Amplify Hosting pour utiliser des versions de backend basées sur les différences à l'aide de la variable d'environnement. `AMPLIFY_DIFF_BACKEND` Lorsque vous activez les versions de backend basées sur le diff, au début de chaque build, Amplify tente d'exécuter un diff sur le `amplify` dossier de votre référentiel. Si Amplify ne trouve aucune différence, il ignore l'étape de création du backend et ne met pas à jour vos ressources backend. Si votre projet ne contient aucun `amplify` dossier dans votre référentiel, Amplify ignore la valeur de la `AMPLIFY_DIFF_BACKEND` variable d'environnement.

Si des commandes personnalisées sont actuellement spécifiées dans les paramètres de génération de votre phase de backend, les builds de backend conditionnels ne fonctionneront pas. Si vous souhaitez que ces commandes personnalisées s'exécutent, vous devez les déplacer vers la phase frontale de vos paramètres de génération dans le `amplify.yml` fichier de votre application.

**Pour configurer des versions de backend basées sur les différences**

1. Connectez-vous à la console [Amplify AWS Management Console](https://console.aws.amazon.com/amplify/) et ouvrez-la.

1. Choisissez l'application pour laquelle configurer les versions de backend basées sur les différences.

1. Dans le volet de navigation, choisissez **Hosting**, **Environment variables**.

1. Dans la section **Variables d'environnement**, sélectionnez **Gérer les variables**.

1. La procédure de configuration de la variable d'environnement varie selon que vous activez ou désactivez les versions de backend basées sur les différences.
   + Pour activer les builds de backend basés sur les différences

     1. Dans la section **Gérer les variables**, sous **Variable**, entrez`AMPLIFY_DIFF_BACKEND`.

     1. Pour le champ **Valeur**, saisissez `true`.
   + Pour désactiver les builds de backend basés sur les différences

     1. Effectuez l’une des actions suivantes :
       + Dans la section **Gérer les variables**, recherchez`AMPLIFY_DIFF_BACKEND`. Pour le champ **Valeur**, saisissez `false`.
       + Supprimez la variable d'`AMPLIFY_DIFF_BACKEND`environnement.

1. Choisissez **Enregistrer**.