Rendere le variabili di ambiente accessibili ai runtime lato server - 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à.

Rendere le variabili di ambiente accessibili ai runtime lato server

Amplify Hosting supporta l'aggiunta di variabili di ambiente alle build dell'applicazione impostandole nella configurazione del progetto nella console Amplify. Tuttavia, un componente del server Next.js non ha accesso a tali variabili di ambiente per impostazione predefinita. Questo comportamento è intenzionale per proteggere eventuali segreti archiviati nelle variabili di ambiente utilizzate dall'applicazione durante la fase di compilazione.

Per rendere accessibili variabili di ambiente specifiche a Next.js, puoi modificare il file delle specifiche della build Amplify per impostarle nei file di ambiente riconosciuti da Next.js. Ciò consente ad Amplify di caricare queste variabili di ambiente prima di creare l'applicazione. Il seguente esempio di specifica di build dimostra come aggiungere variabili di ambiente nella sezione dei comandi di compilazione.

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 questo esempio, la sezione dei comandi di compilazione include due comandi che scrivono le variabili di ambiente nel .env.production file prima dell'esecuzione della build dell'applicazione. Amplify Hosting consente all'applicazione di accedere a queste variabili quando l'applicazione riceve traffico.

La riga seguente della sezione dei comandi di compilazione dell'esempio precedente mostra come prendere una variabile specifica dall'ambiente di compilazione e aggiungerla al file. .env.production

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

Se le variabili esistono nell'ambiente di compilazione, il .env.production file conterrà le seguenti variabili di ambiente.

DB_HOST=localhost DB_USER=myuser DB_PASS=mypassword

La riga seguente della sezione dei comandi di compilazione dell'esempio precedente mostra come aggiungere una variabile di ambiente con un prefisso specifico al file. .env.production In questo esempio, vengono aggiunte tutte le variabili con il prefissoNEXT_PUBLIC_.

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

Se nell'ambiente di compilazione esistono più variabili con il NEXT_PUBLIC_ prefisso, il .env.production file avrà un aspetto simile al seguente.

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

Variabili di ambiente SSR per monorepos

Se state distribuendo un'app SSR in un monorepo e desiderate rendere accessibili variabili di ambiente specifiche a Next.js, dovete anteporre al file il prefisso root dell'applicazione. .env.production L'esempio seguente di specifica di build per un'app Next.js all'interno di un monorepo Nx mostra come aggiungere variabili di ambiente nella sezione dei comandi di compilazione.

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

Le righe seguenti della sezione build commands dell'esempio precedente mostrano come prendere variabili specifiche dall'ambiente di compilazione e aggiungerle al .env.production file per un'app in un monorepo con la radice dell'applicazione. 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