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
SSRvariabili di ambiente per monorepos
Se state distribuendo un'SSRapp in un monorepo e desiderate rendere accessibili variabili di ambiente specifiche a Next.js, dovete aggiungere al file il prefisso root dell'.env.production
applicazione. 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