Umgebungsvariablen für serverseitige Laufzeiten zugänglich machen - 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.

Umgebungsvariablen für serverseitige Laufzeiten zugänglich machen

Amplify Hosting unterstützt das Hinzufügen von Umgebungsvariablen zu den Builds Ihrer Anwendung, indem Sie sie in der Projektkonfiguration in der Amplify-Konsole festlegen. Eine Serverkomponente von Next.js hat jedoch standardmäßig keinen Zugriff auf diese Umgebungsvariablen. Dieses Verhalten dient dazu, alle Geheimnisse zu schützen, die in Umgebungsvariablen gespeichert sind, die Ihre Anwendung während der Erstellungsphase verwendet.

Um bestimmte Umgebungsvariablen für Next.js zugänglich zu machen, können Sie die Amplify-Build-Spezifikationsdatei so ändern, dass sie in den Umgebungsdateien festgelegt werden, die Next.js erkennt. Dadurch kann Amplify diese Umgebungsvariablen laden, bevor die Anwendung erstellt wird. Das folgende Beispiel für eine Build-Spezifikation zeigt, wie Umgebungsvariablen im Abschnitt mit den Build-Befehlen hinzugefügt werden.

version: 1 frontend: phases: preBuild: commands: - npm ci build: commands: - env | grep -e DB_HOST -e DB_USER -e DB_PASS >> .env.production - env | grep -e NEXT_PUBLIC_ >> .env.production - npm run build artifacts: baseDirectory: .next files: - '**/*' cache: paths: - node_modules/**/* - .next/cache/**/*

In diesem Beispiel enthält der Abschnitt mit den Build-Befehlen zwei Befehle, die Umgebungsvariablen in die .env.production Datei schreiben, bevor der Build der Anwendung ausgeführt wird. Amplify Hosting ermöglicht Ihrer Anwendung den Zugriff auf diese Variablen, wenn die Anwendung Datenverkehr empfängt.

Die folgende Zeile aus dem Abschnitt mit den Build-Befehlen im vorherigen Beispiel zeigt, wie Sie eine bestimmte Variable aus der Build-Umgebung nehmen und sie der .env.production Datei hinzufügen.

- env | grep -e DB_HOST -e DB_USER -e DB_PASS >> .env.production

Wenn die Variablen in Ihrer Build-Umgebung existieren, enthält die .env.production Datei die folgenden Umgebungsvariablen.

DB_HOST=localhost DB_USER=myuser DB_PASS=mypassword

Die folgende Zeile aus dem Abschnitt mit den Build-Befehlen im vorherigen Beispiel zeigt, wie Sie der .env.production Datei eine Umgebungsvariable mit einem bestimmten Präfix hinzufügen. In diesem Beispiel NEXT_PUBLIC_ werden alle Variablen mit dem Präfix hinzugefügt.

- env | grep -e NEXT_PUBLIC_ >> .env.production

Wenn in der Build-Umgebung mehrere Variablen mit dem NEXT_PUBLIC_ Präfix existieren, sieht die .env.production Datei wie folgt aus.

NEXT_PUBLIC_ANALYTICS_ID=abcdefghijk NEXT_PUBLIC_GRAPHQL_ENDPOINT=uowelalsmlsadf NEXT_PUBLIC_SEARCH_KEY=asdfiojslf NEXT_PUBLIC_SEARCH_ENDPOINT=https://search-url

SSRUmgebungsvariablen für Monorepos

Wenn Sie eine SSR App in einem Monorepo bereitstellen und bestimmte Umgebungsvariablen für Next.js zugänglich machen möchten, müssen Sie der .env.production Datei Ihr Anwendungsstammverzeichnis voranstellen. Die folgende Beispiel-Build-Spezifikation für eine Next.js -App in einem Nx-Monorepo zeigt, wie Umgebungsvariablen im Abschnitt mit den Build-Befehlen hinzugefügt werden.

version: 1 applications: - frontend: phases: preBuild: commands: - npm ci build: commands: - env | grep -e DB_HOST -e DB_USER -e DB_PASS >> apps/app/.env.production - env | grep -e NEXT_PUBLIC_ >> apps/app/.env.production - npx nx build app artifacts: baseDirectory: dist/apps/app/.next files: - '**/*' cache: paths: - node_modules/**/* buildPath: / appRoot: apps/app

Die folgenden Zeilen aus dem Abschnitt mit den Build-Befehlen im vorherigen Beispiel zeigen, wie bestimmte Variablen aus der Build-Umgebung entnommen und zur .env.production Datei für eine App in einem Monorepo mit dem Anwendungsstamm hinzugefügt werden. apps/app

- env | grep -e DB_HOST -e DB_USER -e DB_PASS >> apps/app/.env.production - env | grep -e NEXT_PUBLIC_ >> apps/app/.env.production