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.
Fehlerbehebung bei serverseitig gerenderten Anwendungen
Wenn bei der Bereitstellung einer SSR-App mit Amplify Hosting Compute unerwartete Probleme auftreten, lesen Sie sich die folgenden Themen zur Fehlerbehebung durch. Wenn Sie hier keine Lösung für Ihr Problem finden, lesen Sie den Leitfaden zur Fehlerbehebung bei SSR-Webcomputern im Repository
Topics
Ich benötige Hilfe bei der Verwendung eines Framework-Adapters
Edge-API-Routen führen dazu, dass mein Next.js Build fehlschlägt
On-Demand Die inkrementelle statische Regeneration funktioniert für meine App nicht
Die Build-Ausgabe meiner Anwendung überschreitet die maximal zulässige Größe
Mein Build schlägt mit einem Fehler wegen unzureichenden Speichers fehl
Mein Build schlägt mit einem Fehler in der veralteten Version Node.js fehl
Ich benötige Hilfe bei der Verwendung eines Framework-Adapters
Wenn Sie Probleme bei der Bereitstellung einer SSR-App haben, die einen Framework-Adapter verwendet, finden Sie weitere Informationen unterVerwendung von Open-Source-Adaptern für jedes SSR-Framework.
Edge-API-Routen führen dazu, dass mein Next.js Build fehlschlägt
Derzeit unterstützt Amplify keine Next.js Edge-API-Routen. Sie müssen beim Hosten Ihrer App mit Amplify APIs und Middleware verwenden, die keine Edge-Komponenten sind.
On-Demand Die inkrementelle statische Regeneration funktioniert für meine App nicht
Ab Version 12.2.0 wird die inkrementelle statische Regeneration (ISR) Next.js unterstützt, um den Next.js Cache für eine bestimmte Seite manuell zu leeren. Amplify unterstützt On-Demand ISR derzeit jedoch nicht. Wenn Ihre App die Next.js On-Demand-Revalidierung verwendet, funktioniert diese Funktion nicht, wenn Sie Ihre App auf Amplify bereitstellen.
Die Build-Ausgabe meiner Anwendung überschreitet die maximal zulässige Größe
Derzeit beträgt die maximale Build-Ausgabegröße, die Amplify für SSR-Apps unterstützt, 220 MB. Wenn Sie eine Fehlermeldung erhalten, die besagt, dass die Größe der Build-Ausgabe Ihrer App die maximal zulässige Größe überschreitet, müssen Sie Maßnahmen ergreifen, um sie zu reduzieren.
Um die Größe der Build-Ausgabe einer App zu reduzieren, können Sie die Build-Artefakte der App überprüfen und alle großen Abhängigkeiten identifizieren, die aktualisiert oder entfernt werden müssen. Laden Sie zunächst die Build-Artefakte auf Ihren lokalen Computer herunter. Überprüfen Sie dann die Größe der Verzeichnisse. Das node_modules Verzeichnis kann beispielsweise Binärdateien wie @swc und, auf @esbuild die von Runtime-Dateien des Next.js Servers verwiesen wird, enthalten. Da diese Binärdateien zur Laufzeit nicht benötigt werden, können Sie sie nach dem Build löschen.
Verwenden Sie die folgenden Anweisungen, um die Build-Ausgabe einer App herunterzuladen und die Größe der Verzeichnisse mithilfe der AWS Command Line Interface (CLI) zu überprüfen.
Um die Build-Ausgabe für eine Next.js App herunterzuladen und zu überprüfen
-
Öffnen Sie ein Terminalfenster und führen Sie den folgenden Befehl aus. Ändern Sie die App-ID, den Zweignamen und die Job-ID nach Ihren eigenen Angaben. Verwenden Sie für die Job-ID die Buildnummer für den fehlgeschlagenen Build, den Sie untersuchen.
aws amplify get-job --app-idabcd1234--branch-namemain--job-id2 -
Suchen Sie in der Terminalausgabe im
stepName: "BUILD"Abschnitt,, nach der URL für vorsignierte Artefakte.jobstepsDie URL ist in der folgenden Beispielausgabe rot hervorgehoben."job": { "summary": { "jobArn": "arn:aws:amplify:us-west-2:111122223333:apps/abcd1234/main/jobs/0000000002", "jobId": "2", "commitId": "HEAD", "commitTime": "2024-02-08T21:54:42.398000+00:00", "startTime": "2024-02-08T21:54:42.674000+00:00", "status": "SUCCEED", "endTime": "2024-02-08T22:03:58.071000+00:00" }, "steps": [ { "stepName": "BUILD", "startTime": "2024-02-08T21:54:42.693000+00:00", "status": "SUCCEED", "endTime": "2024-02-08T22:03:30.897000+00:00", "logUrl":"https://aws-amplify-prod-us-west-2-artifacts.s3.us-west-2.amazonaws.com/abcd1234/main/0000000002/BUILD/log.txt?X-Amz-Security-Token=IQoJb3JpZ2luX2V...Example -
Kopieren Sie die URL und fügen Sie sie in ein Browserfenster ein. Eine
artifacts.zipDatei wird auf Ihren lokalen Computer heruntergeladen. Dies ist Ihre Build-Ausgabe. -
Führen Sie den Befehl
dudisk usage aus, um die Größe der Verzeichnisse zu überprüfen. Der folgende Beispielbefehl gibt die Größe derstaticVerzeichnissecomputeund zurück.du -csh compute staticIm Folgenden finden Sie ein Beispiel für die Ausgabe mit Größeninformationen für die
staticVerzeichnissecomputeund.29M compute 3.8M static 33M total -
Öffnen Sie das
computeVerzeichnis und suchen Sie dennode_modulesOrdner. Suchen Sie in Ihren Abhängigkeiten nach Dateien, die Sie aktualisieren oder entfernen können, um die Größe des Ordners zu verringern. -
Wenn Ihre App Binärdateien enthält, die in der Runtime nicht benötigt werden, löschen Sie sie nach dem Build, indem Sie die folgenden Befehle zum Build-Abschnitt der
amplify.ymlApp-Datei hinzufügen.- rm -f node_modules/@swc/core-linux-x64-gnu/swc.linux-x64-gnu.node - rm -f node_modules/@swc/core-linux-x64-musl/swc.linux-x64-musl.nodeIm Folgenden finden Sie ein Beispiel für den Abschnitt mit Build-Befehlen in einer
amplify.ymlDatei, in dem diese Befehle nach der Ausführung eines Produktions-Builds hinzugefügt wurden.frontend: phases: build: commands: -npm run build // After running a production build, delete the files - rm -f node_modules/@swc/core-linux-x64-gnu/swc.linux-x64-gnu.node - rm -f node_modules/@swc/core-linux-x64-musl/swc.linux-x64-musl.node
Mein Build schlägt mit einem Fehler wegen unzureichenden Speichers fehl
Next.js ermöglicht es Ihnen, Build-Artefakte zwischenzuspeichern, um die Leistung bei nachfolgenden Builds zu verbessern. Darüber hinaus komprimiert der AWS CodeBuild Container von Amplify diesen Cache und lädt ihn in Ihrem Namen auf Amazon S3 hoch, um die nachfolgende Build-Leistung zu verbessern. Dies könnte dazu führen, dass Ihr Build mit einem Fehler wegen unzureichenden Speichers fehlschlägt.
Führen Sie die folgenden Aktionen aus, um zu verhindern, dass Ihre App das Speicherlimit während der Erstellungsphase überschreitet. Entfernen Sie es zunächst .next/cache/**/* aus dem Abschnitt cache.paths Ihrer Build-Einstellungen. Als Nächstes entfernen Sie die NODE_OPTIONS Umgebungsvariable aus Ihrer Build-Einstellungsdatei. Stellen Sie stattdessen die NODE_OPTIONS Umgebungsvariable in der Amplify-Konsole ein, um das maximale Speicherlimit für den Knoten zu definieren. Weitere Informationen zum Setzen von Umgebungsvariablen mit der Amplify-Konsole finden Sie unterUmgebungsvariablen setzen.
Nachdem Sie diese Änderungen vorgenommen haben, versuchen Sie es erneut mit Ihrem Build. Wenn dies erfolgreich ist, fügen Sie .next/cache/**/* dem Abschnitt cache.paths Ihrer Build-Einstellungsdatei etwas hinzu.
Weitere Informationen zur Next.js Cache-Konfiguration zur Verbesserung der Build-Leistung finden Sie CodeBuild auf der Next.js AWS-Website
Die Größe der HTTP-Antwort meiner Anwendung ist zu groß
Derzeit beträgt die maximale Antwortgröße, die Amplify für Apps ab Next.js 12 unterstützt, die die Web Compute-Plattform verwenden, 5,72 MB. Antworten, die dieses Limit überschreiten, geben 504 Fehler ohne Inhalt an die Clients zurück.
Wie messe ich die Startzeit meiner Compute-App lokal?
Verwenden Sie die folgenden Anweisungen, um die lokale initialization/start Betriebszeit für Ihre Compute-App ab Version Next.js 12 zu ermitteln. Sie können die Leistung Ihrer App lokal mit der Leistung von Amplify Hosting vergleichen und die Ergebnisse verwenden, um die Leistung Ihrer App zu verbessern.
Um die Initialisierungszeit einer Next.js Compute-App lokal zu messen
-
Öffnen Sie die
next.config.jsDatei der App und stellen Sie dieoutputOptionstandalonewie folgt ein.** @type {import('next').NextConfig} */ const nextConfig = { // Other options output: "standalone", }; module.exports = nextConfig; -
Öffnen Sie ein Terminalfenster und führen Sie den folgenden Befehl aus, um die App zu erstellen.
next build -
Führen Sie den folgenden Befehl aus, um den
.next/staticOrdner zu kopieren.next/standalone/.next/static.cp -r .next/static .next/standalone/.next/static -
Führen Sie den folgenden Befehl aus, um den
publicOrdner zu kopieren.next/standalone/public.cp -r public .next/standalone/public -
Führen Sie den folgenden Befehl aus, um den Next.js Server zu starten.
node .next/standalone/server.js -
Beachten Sie, wie lange es zwischen der Ausführung des Befehls in Schritt 5 und dem Starten des Servers dauert. Wenn der Server einen Port abhört, sollte er die folgende Meldung ausgeben.
Listening on port 3000 -
Beachten Sie, wie lange es dauert, bis alle anderen Module nach dem Start des Servers in Schritt 6 geladen sind. Zum Beispiel
bugsnagdauert das Laden von Bibliotheken wie 10—12 Sekunden. Nach dem Laden wird die Bestätigungsnachricht angezeigt[bugsnag] loaded. -
Addieren Sie die Zeitdauern aus Schritt 6 und Schritt 7. Dieses Ergebnis ist die lokale initialization/start Betriebszeit Ihrer Compute-App.
Mein Build schlägt mit einem Fehler in der veralteten Version Node.js fehl
Problem: Der Build Ihrer SSR-Anwendung schlägt mit dem Fehler „ Node.js Version nicht unterstützt“ fehl.
❌ NODE.JS VERSION NOT SUPPORTED ================================================================================ Your application uses Node.js v18.x.x, which is no longer supported. AWS Amplify Console has ended support for Node.js 14, Node.js 16 and Node.js 18. To deploy your application, please upgrade to Node.js 20 or later. For detailed migration guidelines, visit: https://docs.aws.amazon.com/amplify/latest/userguide/troubleshooting-general.html#update-node-version ================================================================================
Ursache: Ihre SSR-Anwendung wurde mit einer veralteten Node.js Version (14.x, 16.x oder 18.x) erstellt. Mit Wirkung zum 15. September 2025 blockiert Amplify die Bereitstellung von SSR-Anwendungen, die diese veralteten Versionen während des Build-Prozesses verwenden.
Aktualisieren Sie Ihre Build-Umgebung auf Version 2.0 oder höher. Node.js Detaillierte Anweisungen finden Sie unter Ich muss die Version meiner Anwendung aktualisieren Node.js.