Configurazione delle impostazioni di compilazione - AWS Amplify Ospitare

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione delle impostazioni di compilazione

Quando distribuisci un'app con Amplify Hosting, questa rileva automaticamente il framework front-end e le impostazioni di build associate package.json ispezionando il file nel tuo repository. Sono disponibili le seguenti opzioni per memorizzare le impostazioni di build dell'app:

  • Salva le impostazioni di build nella console Amplify - La console Amplify rileva automaticamente le impostazioni di build e le salva in modo che sia possibile accedervi tramite la console Amplify. Amplify applica queste impostazioni a tutte le tue filiali a meno che non ci sia amplify.yml un file memorizzato nel tuo repository.

  • Salva le impostazioni di build nel tuo repository: scarica il amplify.yml file e aggiungilo alla radice del tuo repository.

Puoi modificare le impostazioni di build di un'app nella console Amplify scegliendo Impostazioni app, Impostazioni build. Le impostazioni di build vengono applicate a tutti i rami dell'app, ad eccezione dei rami che hanno un amplify.yml file salvato nel repository.

Nota

Le impostazioni di build sono visibili nel menu delle impostazioni dell'app della console Amplify solo quando un'app è configurata per la distribuzione continua e connessa a un repository git. Per istruzioni su questo tipo di distribuzione, consulta Guida introduttiva al codice esistente.

Crea comandi e impostazioni per le specifiche

La specifica di build YAML contiene una raccolta di comandi di compilazione e impostazioni correlate che Amplify utilizza per eseguire la build. L'elenco seguente descrive queste impostazioni e come vengono utilizzate.

version

Il numero di versione YAML di Amplify.

AppRoot

Il percorso all'interno del repository in cui risiede questa applicazione. Ignorato a meno che non vengano definite più applicazioni.

env

Aggiungi variabili di ambiente a questa sezione. Si possono aggiungere variabili d'ambiente anche dalla console.

backend

Esegui i comandi Amplify CLI per fornire un backend, aggiornare le funzioni Lambda o gli schemi GraphQL come parte della distribuzione continua. Scopri come distribuire un back-end con il front-end.

frontend

Esegui i comandi di compilazione del frontend.

test

Esegui i comandi durante una fase di test. Scopri come aggiungere test alla tua app.

fasi di costruzione

Il frontend, il backend e il test hanno tre fasi che rappresentano i comandi eseguiti durante ogni sequenza della build.

  • PreBuild - Lo script PreBuild viene eseguito prima dell'inizio della compilazione effettiva, ma dopo che Amplify installa le dipendenze.

  • build: i comandi di compilazione.

  • PostBuild - Lo script post-build viene eseguito al termine della compilazione e Amplify ha copiato tutti gli artefatti necessari nella directory di output.

buildpath

Il percorso da utilizzare per eseguire la build. Amplify utilizza questo percorso per localizzare gli artefatti della tua build. Se non specifichi un percorso, Amplify utilizza la root dell'app monorepo, ad esempio. apps/app

artifacts>base-directory

La directory in cui esistono gli artefatti della build.

artefatti>file

Specificate i file degli artefatti che desiderate distribuire. Inserisci **/* per includere tutti i file.

cache

Il campo cache di buildspec viene utilizzato per memorizzare nella cache le dipendenze in fase di compilazione come la cartella node_modules e viene suggerito automaticamente in base al gestore di pacchetti e al framework integrati nell'app del cliente. Durante la prima build, tutti i percorsi qui vengono memorizzati nella cache e nelle build successive regonfiamo la cache e utilizziamo quelle dipendenze memorizzate nella cache, ove possibile, per accelerare i tempi di compilazione.

L'esempio seguente di specifica di build illustra la sintassi YAML di 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*

Impostazioni di costruzione specifiche del ramo

Puoi utilizzare lo scripting della shell Bash per specificare le impostazioni di compilazione specifiche per il ramo. Ad esempio, lo script seguente utilizza la variabile di ambiente di sistema $AWS_BRANCH per eseguire un set di comandi se il nome del ramo è main e un set diverso di comandi se il nome del ramo è dev.

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

Per monorepos, gli utenti vogliono poter accedere a una cartella per cd eseguire la build. Dopo aver eseguito il cd comando, questo si applica a tutte le fasi della build, quindi non è necessario ripetere il comando in fasi separate.

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

Implementazione del backend con il front-end

Il amplifyPush comando è uno script di supporto che ti aiuta con le distribuzioni di backend. Le impostazioni di compilazione riportate di seguito determinano automaticamente l'ambiente back-end corretto da distribuire per il ramo corrente.

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

Impostazione della cartella di output

Le seguenti impostazioni di compilazione impostano la directory di output per la cartella pubblica.

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

Installazione di pacchetti come parte di una build

È possibile utilizzare i yarn comandi npm o per installare i pacchetti durante la compilazione.

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

Utilizzo di un registro npm privato

Si possono aggiungere riferimenti a un registro privato nelle impostazioni di compilazione oppure come variabile d'ambiente.

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

Installazione di pacchetti del sistema operativo

L'immagine AL2023 di Amplify esegue il codice con un utente non privilegiato denominato. amplify Amplify concede a questo utente i privilegi per eseguire i comandi del sistema operativo utilizzando il comando Linux. sudo Se desideri installare pacchetti del sistema operativo per le dipendenze mancanti, puoi usare comandi come e with. yum rpm sudo

La sezione build di esempio seguente mostra la sintassi per l'installazione di un pacchetto del sistema operativo utilizzando il comando. sudo

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

Archiviazione della coppia chiave-valore per ogni compilazione

envCacheFornisce l'archiviazione chiave-valore in fase di compilazione. I valori memorizzati in envCache possono essere modificati solo durante una build e possono essere riutilizzati nella build successiva. UtilizzandoenvCache, possiamo archiviare informazioni sull'ambiente distribuito e renderle disponibili al contenitore di build nelle build successive. A differenza dei valori memorizzati inenvCache, le modifiche alle variabili di ambiente durante una build non vengono mantenute nelle build future.

Esempio di utilizzo:

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

Salta la compilazione per un commit

Per saltare una compilazione automatica su un particolare commit, includi il testo [skip-cd] alla fine del messaggio di commit.

Disabilita le build automatiche

Puoi configurare Amplify per disabilitare le build automatiche su ogni commit di codice. Per eseguire la configurazione, scegli Impostazioni app, Generale, quindi scorri fino alla sezione Filiali che elenca i rami collegati. Seleziona un ramo, quindi scegli Azione, Disabilita la costruzione automatica. Gli ulteriori commit per quel ramo non attiveranno più una nuova compilazione.

Abilita o disabilita la creazione e la distribuzione del frontend basato su diff

Puoi configurare Amplify per utilizzare build di frontend basate su diff. Se abilitato, all'inizio di ogni build Amplify tenta di eseguire un diff sulla appRoot tua cartella o /src/ sulla cartella per impostazione predefinita. Se Amplify non rileva alcuna differenza, salta i passaggi di compilazione, test (se configurato) e distribuzione del frontend e non aggiorna l'app ospitata.

Per configurare un frontend basato su diff, compila e distribuisci
  1. Accedi AWS Management Console e apri la console Amplify.

  2. Scegli l'app per cui configurare la creazione e la distribuzione del frontend basato su diff.

  3. Nel pannello di navigazione, scegli Impostazioni app, Variabili di ambiente.

  4. Nella sezione Variabili di ambiente, scegli Gestisci variabili.

  5. La procedura per configurare la variabile di ambiente varia a seconda che stiate abilitando o disabilitando la creazione e la distribuzione del frontend basato su diff.

    • Per abilitare la creazione e la distribuzione di frontend basati su differenze

      1. Nella sezione Gestisci variabili, sotto Variabile, inserisci. AMPLIFY_DIFF_DEPLOY

      2. In Valore, specifica true.

    • Per disabilitare la creazione e la distribuzione del frontend basato su diff

      1. Esegui una di queste operazioni:

        • Nella sezione Gestisci le variabili, individua. AMPLIFY_DIFF_DEPLOY In Valore, specifica false.

        • Rimuovi la variabile di AMPLIFY_DIFF_DEPLOY ambiente.

  6. Selezionare Salva.

Facoltativamente, puoi impostare la variabile di AMPLIFY_DIFF_DEPLOY_ROOT ambiente per sovrascrivere il percorso predefinito con un percorso relativo alla radice del repository, ad esempio. dist

Abilita o disabilita le build di backend basate su diff

Puoi configurare Amplify Hosting per utilizzare build di backend basate su diff utilizzando la variabile di ambiente. AMPLIFY_DIFF_BACKEND Quando abiliti le build di backend basate su diff, all'inizio di ogni build Amplify tenta di eseguire un diff nella cartella del tuo repository. amplify Se Amplify non rileva alcuna differenza, salta la fase di creazione del backend e non aggiorna le risorse del backend. Se il progetto non ha una amplify cartella nel repository, Amplify ignora il valore della variabile di ambiente. AMPLIFY_DIFF_BACKEND

Se al momento hai dei comandi personalizzati specificati nelle impostazioni di compilazione della fase di backend, le build condizionali di backend non funzioneranno. Se desideri che questi comandi personalizzati vengano eseguiti, devi spostarli nella fase di frontend delle impostazioni di build nel file dell'app. amplify.yml

Per configurare build di backend basate su diff
  1. Accedi AWS Management Console e apri la console Amplify.

  2. Scegli l'app per cui configurare le build di backend basate su diff.

  3. Nel riquadro di navigazione, scegli Impostazioni app, Variabili di ambiente.

  4. Nella sezione Variabili di ambiente, scegli Gestisci variabili.

  5. La procedura per configurare la variabile di ambiente varia a seconda che si stiano abilitando o disabilitando le build di backend basate su diff.

    • Per abilitare le build di backend basate su diff

      1. Nella sezione Gestisci variabili, sotto Variabile, inserisci. AMPLIFY_DIFF_BACKEND

      2. In Valore, specifica true.

    • Per disabilitare le build di backend basate su diff

      1. Esegui una di queste operazioni:

        • Nella sezione Gestisci le variabili, individua. AMPLIFY_DIFF_BACKEND In Valore, specifica false.

        • Rimuovi la variabile di AMPLIFY_DIFF_BACKEND ambiente.

  6. Selezionare Salva.