Build-Einstellungen konfigurieren - AWS Amplify Hosten

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Build-Einstellungen konfigurieren

Wenn Sie eine App mit Amplify Hosting bereitstellen, erkennt sie automatisch das Front-End-Framework und die zugehörigen Build-Einstellungen, indem sie die package.json Datei in Ihrem Repository überprüft. Sie haben die folgenden Optionen zum Speichern der Build-Einstellungen Ihrer App:

  • Speichern Sie die Build-Einstellungen in der Amplify-Konsole — Die Amplify-Konsole erkennt die Build-Einstellungen automatisch und speichert sie, sodass über die Amplify-Konsole auf sie zugegriffen werden kann. Amplify wendet diese Einstellungen auf alle Ihre Branches an, es sei denn, in Ihrem Repository ist eine amplify.yml Datei gespeichert.

  • Speichern Sie die Build-Einstellungen in Ihrem Repository — Laden Sie die amplify.yml Datei herunter und fügen Sie sie dem Stammverzeichnis Ihres Repositorys hinzu.

Sie können die Build-Einstellungen einer App in der Amplify-Konsole bearbeiten, indem Sie im Navigationsbereich Hosting und dann Build-Einstellungen auswählen. Die Build-Einstellungen werden auf alle Branches in Ihrer App angewendet, mit Ausnahme der Branches, für die eine amplify.yml Datei im Repository gespeichert ist.

Anmerkung

Die Build-Einstellungen sind nur dann im Hosting-Menü der Amplify-Konsole sichtbar, wenn eine App für die kontinuierliche Bereitstellung eingerichtet und mit einem Git-Repository verbunden ist. Anweisungen zu dieser Art der Bereitstellung finden Sie unter Erste Schritte.

Befehle und Einstellungen für Build-Spezifikationen

Die Build-Spezifikation YAML enthält eine Sammlung von Build-Befehlen und zugehörigen Einstellungen, die Amplify verwendet, um Ihren Build auszuführen. In der folgenden Liste werden diese Einstellungen und ihre Verwendung beschrieben.

version

Die Amplify YAML-Versionsnummer.

AppRoot

Der Pfad innerhalb des Repositorys, in dem sich diese Anwendung befindet. Wird ignoriert, sofern nicht mehrere Anwendungen definiert sind.

env

Fügen Sie diesem Abschnitt Umgebungsvariablen hinzu. Sie können Umgebungsvariablen auch mithilfe der Konsole hinzufügen.

Backend

Führen Sie Amplify CLI-Befehle aus, um im Rahmen einer kontinuierlichen Bereitstellung ein Backend bereitzustellen, Lambda-Funktionen oder GraphQL-Schemas zu aktualisieren.

Frontend

Führen Sie Frontend-Build-Befehle aus.

Test

Befehle während einer Testphase ausführen. Erfahren Sie, wie Sie Ihrer App Tests hinzufügen.

Phasen erstellen

Das Frontend, das Backend und der Test bestehen aus drei Phasen, die die Befehle darstellen, die während jeder Sequenz des Builds ausgeführt werden.

  • PreBuild — Das PreBuild-Skript wird ausgeführt, bevor der eigentliche Build gestartet wird, aber nachdem Amplify Abhängigkeiten installiert hat.

  • Build: Ihre Build-Befehle.

  • PostBuild — Das Post-Build-Skript wird ausgeführt, nachdem der Build abgeschlossen ist und Amplify alle erforderlichen Artefakte in das Ausgabeverzeichnis kopiert hat.

Buildpath

Der Pfad, der zum Ausführen des Builds verwendet werden soll. Amplify verwendet diesen Pfad, um Ihre Build-Artefakte zu finden. Wenn Sie keinen Pfad angeben, verwendet Amplify beispielsweise den Monorepo-App-Root. apps/app

Artefakte>Basisverzeichnis

Das Verzeichnis, in dem Ihre Build-Artefakte existieren.

Artefakte>Dateien

Geben Sie Dateien aus Ihren Artefakten an, die Sie bereitstellen möchten. Geben Sie ein**/*, um alle Dateien einzubeziehen.

Cache

Das Cache-Feld der Buildspec wird verwendet, um Abhängigkeiten von der Buildzeit wie den Ordner node_modules zwischenzuspeichern. Es wird automatisch basierend auf dem Paketmanager und dem Framework vorgeschlagen, in dem die App des Kunden integriert ist. Während des ersten Builds werden alle Pfade hier zwischengespeichert, und bei nachfolgenden Builds füllen wir den Cache erneut auf und verwenden diese zwischengespeicherten Abhängigkeiten, wo immer möglich, um die Build-Zeit zu verkürzen.

Die folgende Beispiel-Build-Spezifikation demonstriert die grundlegende YAML-Syntax:

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*

Branchenspezifische Build-Einstellungen

Sie können Bash-Shell-Skripts verwenden, um verzweigungsspezifische Build-Einstellungen festzulegen. Das folgende Skript verwendet beispielsweise die Systemumgebungsvariable $AWS_BRANCH, um einen Befehlssatz auszuführen, wenn der Branch-Name main ist, und einen anderen Befehlssatz, wenn der Branchname dev ist.

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

Bei Monorepos möchten Benutzer in der Lage sein, cd in einen Ordner zu gelangen, um den Build auszuführen. Nachdem Sie den cd Befehl ausgeführt haben, gilt er für alle Phasen Ihres Builds, sodass Sie den Befehl nicht in separaten Phasen wiederholen müssen.

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

Bereitstellung des Backends mit dem Frontend für eine Gen-1-App

Anmerkung

Dieser Abschnitt gilt nur für Amplify Gen 1-Anwendungen. Ein Gen 1-Backend wird mit Amplify Studio und der Amplify-Befehlszeilenschnittstelle (CLI) erstellt.

Der amplifyPush Befehl ist ein Hilfsskript, das Ihnen bei Backend-Bereitstellungen hilft. Die Build-Einstellungen unten ermitteln automatisch die richtige Backend-Umgebung für die Bereitstellung der aktuellen Verzweigung.

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

Einstellung des Ausgabeordners

Mit den folgenden Build-Einstellungen wird der öffentliche Ordner als Ausgabeordner festgelegt.

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

Pakete als Teil eines Builds installieren

Sie können die yarn Befehle npm oder verwenden, um Pakete während des Builds zu installieren.

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

Verwenden Sie eine private NPM-Registrierung

Sie können eine private Registrierung als Umgebungsvariable hinzufügen oder Verweise darauf in Ihren Build-Einstellungen hinzufügen.

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

Installieren von OS-Paketen

Das AL203-Image von Amplify führt Ihren Code mit einem nicht privilegierten Benutzer namens aus. amplify Amplify gewährt diesem Benutzer Rechte, Betriebssystembefehle mit dem sudo Linux-Befehl auszuführen. Wenn Sie Betriebssystempakete für fehlende Abhängigkeiten installieren möchten, können Sie Befehle wie yum und rpm with sudo verwenden.

Der folgende Beispiel-Build-Abschnitt demonstriert die Syntax für die Installation eines Betriebssystempakets mithilfe des sudo Befehls.

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

Schlüssel-Wert-Speicher für jeden Build

Der envCache stellt die Speicherung von Schlüsselwerten bei der Erstellung bereit. Werte, die in gespeichert sind, envCache können nur während eines Builds geändert und beim nächsten Build wiederverwendet werden. Mithilfe von können wir Informationen über die bereitgestellte Umgebung speichern und sie dem Build-Container in aufeinanderfolgenden Builds zur Verfügung stellen. envCache Im Gegensatz zu WertenenvCache, die in der gespeichert sind, werden Änderungen an Umgebungsvariablen während eines Builds nicht für future Builds beibehalten.

Beispielverwendung:

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

Überspringe den Build für einen Commit

Um einen automatischen Build für einen bestimmten Commit zu überspringen, fügen Sie den Text [skip-cd] am Ende der Commit-Nachricht ein.

Deaktivieren Sie automatische Builds

Sie können Amplify so konfigurieren, dass automatische Builds bei jedem Code-Commit deaktiviert werden. Wählen Sie zur Einrichtung App-Einstellungen, Branch-Einstellungen und suchen Sie dann den Abschnitt Branches, in dem die verbundenen Branches aufgelistet sind. Wählen Sie einen Zweig aus und klicken Sie dann auf Aktionen, auto Erstellung deaktivieren. Neue Commits für diesen Branch führen nicht mehr zu einem neuen Build.

Aktiviert oder deaktiviert das auf Diff basierende Frontend-Build und Deployment

Sie können Amplify so konfigurieren, dass diff-basierte Frontend-Builds verwendet werden. Wenn diese Option aktiviert ist, versucht Amplify zu Beginn jedes Builds standardmäßigappRoot, einen Diff für Ihren oder den /src/ Ordner auszuführen. Wenn Amplify keine Unterschiede feststellt, überspringt es die Schritte zum Erstellen, Testen (falls konfiguriert) und Bereitstellen des Frontends und aktualisiert Ihre gehostete App nicht.

Um das diff-basierte Frontend zu konfigurieren, zu erstellen und bereitzustellen
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amplify-Konsole.

  2. Wählen Sie die App aus, für die Sie den Diff-basierten Frontend-Build und die Bereitstellung konfigurieren möchten.

  3. Wählen Sie im Navigationsbereich Hosting, Umgebungsvariablen aus.

  4. Wählen Sie im Abschnitt Umgebungsvariablen die Option Variablen verwalten aus.

  5. Das Verfahren zur Konfiguration der Umgebungsvariablen hängt davon ab, ob Sie das diff-basierte Frontend-Build und Deploy aktivieren oder deaktivieren.

    • Um das diff-basierte Frontend zu aktivieren, erstellen und implementieren Sie es

      1. Geben AMPLIFY_DIFF_DEPLOYSie im Abschnitt Variablen verwalten unter Variable den Wert ein.

      2. Geben Sie für Wert true ein.

    • Um das auf Diff basierende Frontend-Build und Deployment zu deaktivieren

      1. Führen Sie eine der folgenden Aktionen aus:

        • Suchen AMPLIFY_DIFF_DEPLOYSie im Abschnitt Variablen verwalten nach. Geben Sie für Wert false ein.

        • Entfernen Sie die AMPLIFY_DIFF_DEPLOY Umgebungsvariable.

  6. Wählen Sie Speichern.

Optional können Sie die AMPLIFY_DIFF_DEPLOY_ROOT Umgebungsvariable so einstellen, dass sie den Standardpfad durch einen Pfad überschreibt, der sich auf das Stammverzeichnis Ihres Repositorys bezieht, z. B. dist

Aktivieren oder deaktivieren Sie diff-basierte Backend-Builds für eine Gen-1-App

Anmerkung

Dieser Abschnitt gilt nur für Amplify Gen 1-Anwendungen. Ein Gen 1-Backend wird mit Amplify Studio und der Amplify-Befehlszeilenschnittstelle (CLI) erstellt.

Sie können Amplify Hosting so konfigurieren, dass es diff-basierte Backend-Builds verwendet, indem Sie die AMPLIFY_DIFF_BACKEND Umgebungsvariable verwenden. Wenn Sie diff-basierte Backend-Builds aktivieren, versucht Amplify zu Beginn jedes Builds, einen Diff für den amplify Ordner in Ihrem Repository auszuführen. Wenn Amplify keine Unterschiede feststellt, überspringt es den Backend-Build-Schritt und aktualisiert Ihre Backend-Ressourcen nicht. Wenn Ihr Projekt keinen amplify Ordner in Ihrem Repository hat, ignoriert Amplify den Wert der AMPLIFY_DIFF_BACKEND Umgebungsvariablen.

Wenn Sie derzeit benutzerdefinierte Befehle in den Build-Einstellungen Ihrer Backend-Phase angegeben haben, funktionieren bedingte Backend-Builds nicht. Wenn Sie möchten, dass diese benutzerdefinierten Befehle ausgeführt werden, müssen Sie sie in der Datei Ihrer App in die Frontend-Phase Ihrer Build-Einstellungen verschieben. amplify.yml

Um diff-basierte Backend-Builds zu konfigurieren
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amplify-Konsole.

  2. Wählen Sie die App aus, für die diff-basierte Backend-Builds konfiguriert werden sollen.

  3. Wählen Sie im Navigationsbereich Hosting, Umgebungsvariablen aus.

  4. Wählen Sie im Abschnitt Umgebungsvariablen die Option Variablen verwalten aus.

  5. Das Verfahren zur Konfiguration der Umgebungsvariablen hängt davon ab, ob Sie diff-basierte Backend-Builds aktivieren oder deaktivieren.

    • So aktivieren Sie diff-basierte Backend-Builds

      1. Geben AMPLIFY_DIFF_BACKENDSie im Abschnitt Variablen verwalten unter Variable den Wert ein.

      2. Geben Sie für Wert true ein.

    • Um Diff-basierte Backend-Builds zu deaktivieren

      1. Führen Sie eine der folgenden Aktionen aus:

        • Suchen AMPLIFY_DIFF_BACKENDSie im Abschnitt Variablen verwalten nach. Geben Sie für Wert false ein.

        • Entfernen Sie die AMPLIFY_DIFF_BACKEND Umgebungsvariable.

  6. Wählen Sie Speichern.