Configuration des paramètres de compilation - AWS Amplify Hébergement

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

Configuration des paramètres de compilation

Lorsque vous déployez une application avec Amplify Hosting, celle-ci détecte automatiquement le framework frontal et les paramètres de build associés en inspectant le package.json fichier dans votre référentiel. Vous disposez des options suivantes pour stocker les paramètres de compilation de votre application :

  • Enregistrez les paramètres de build dans la console Amplify - La console Amplify détecte automatiquement les paramètres de build et les enregistre afin qu'ils soient accessibles via la console Amplify. Amplify applique ces paramètres à toutes vos branches, sauf si un amplify.yml fichier est stocké dans votre référentiel.

  • Enregistrez les paramètres de compilation dans votre dépôt : téléchargez le amplify.yml fichier et ajoutez-le à la racine de votre dépôt.

Vous pouvez modifier les paramètres de compilation d'une application dans la console Amplify en choisissant Hosting, puis Build settings dans le volet de navigation. Les paramètres de génération 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.

Note

Les paramètres de compilation ne sont visibles dans le menu d'hébergement de la console Amplify que lorsqu'une application est configurée pour un déploiement continu et connectée à un référentiel git. Pour obtenir des instructions sur ce type de déploiement, consultez Getting started.

Commandes et paramètres de spécification de construction

La spécification de construction YAML contient un ensemble de commandes de construction et de paramètres associés qu'Amplify utilise pour exécuter votre build. La liste suivante décrit ces paramètres et leur mode d'utilisation.

version

Le numéro de version d'Amplify YAML.

par Root

Le chemin dans le référentiel dans lequel réside cette application. Ignoré sauf si plusieurs applications sont définies.

env

Ajoutez des variables d'environnement à cette section. Vous pouvez également ajouter des variables d'environnement à l'aide de la console.

dorsal

Exécutez les commandes Amplify CLI pour provisionner un backend, mettre à jour les fonctions Lambda ou les schémas GraphQL dans le cadre d'un déploiement continu.

frontend

Exécutez les commandes de construction du frontend.

test

Exécutez des commandes pendant une phase de test. Découvrez comment ajouter des tests à votre application.

phases de construction

Le frontend, le backend et le test comportent trois phases qui représentent les commandes exécutées au cours de chaque séquence de construction.

  • PreBuild - Le script PreBuild s'exécute avant le début de la compilation proprement dite, mais après qu'Amplify ait installé les dépendances.

  • génération : vos commandes de génération.

  • PostBuild - Le script post-build s'exécute une fois la compilation terminée et Amplify a copié tous les artefacts nécessaires dans le répertoire de sortie.

chemin de construction

Le chemin à utiliser pour exécuter le build. Amplify utilise ce chemin pour localiser les artefacts de votre build. Si vous ne spécifiez pas de chemin, Amplify utilise la racine de l'application monorepo, par exemple. apps/app

artéfacts > répertoire de base

Le répertoire dans lequel se trouvent vos artefacts de build.

artéfacts > fichiers

Spécifiez les fichiers à partir de vos artefacts que vous souhaitez déployer. Entrez **/* pour inclure tous les fichiers.

cache

Le champ de cache de buildspec est utilisé pour mettre en cache les dépendances au moment de la création, telles que le dossier node_modules, et est automatiquement suggéré en fonction du gestionnaire de packages et du framework dans lesquels l'application du client est intégrée. Lors de la première génération, tous les chemins présents sont mis en cache, et lors des versions suivantes, nous regonflons le cache et utilisons ces dépendances mises en cache dans la mesure du possible pour accélérer le temps de construction.

L'exemple de spécification de construction suivant illustre la syntaxe YAML de base :

version: 1 env: variables: key: value backend: phases: preBuild: commands: - *enter command* build: commands: - *enter command* postBuild: commands: - *enter command* frontend: buildpath: phases: preBuild: commands: - cd react-app - npm ci build: commands: - npm run build artifacts: files: - location - location discard-paths: yes baseDirectory: location cache: paths: - path - path test: phases: preTest: commands: - *enter command* test: commands: - *enter command* postTest: commands: - *enter command* artifacts: files: - location - location configFilePath: *location* baseDirectory: *location*

Paramètres de construction spécifiques à la branche

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

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

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

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

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é

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

L'image AL2023 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 avecsudo.

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>

Stockage des paires clé-valeur pour chaque build

envCacheFournit 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 deenvCache, 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 leenvCache, 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

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

Vous pouvez configurer Amplify pour désactiver les builds 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.

Activer ou désactiver la création et le déploiement du frontend basé sur les différences

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 et ouvrez-la.

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

  3. Dans le volet de navigation, choisissez Hosting, Environment variables.

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

  5. 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, entrezAMPLIFY_DIFF_DEPLOY.

      2. 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, recherchezAMPLIFY_DIFF_DEPLOY. Pour le champ Valeur, saisissez false.

        • Supprimez la variable d'AMPLIFY_DIFF_DEPLOYenvironnement.

  6. Choisissez Enregistrer.

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

Activer ou désactiver les versions de backend basées sur les différences pour une application de première génération

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 et ouvrez-la.

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

  3. Dans le volet de navigation, choisissez Hosting, Environment variables.

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

  5. 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, entrezAMPLIFY_DIFF_BACKEND.

      2. 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, recherchezAMPLIFY_DIFF_BACKEND. Pour le champ Valeur, saisissez false.

        • Supprimez la variable d'AMPLIFY_DIFF_BACKENDenvironnement.

  6. Choisissez Enregistrer.