As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Tornando as variáveis de ambiente acessíveis aos runtimes do lado do servidor
O Amplify Hosting suporta a adição de variáveis de ambiente às compilações do seu aplicativo, definindo-as na configuração do projeto no console do Amplify. No entanto, um componente do servidor Next.js não tem acesso a essas variáveis de ambiente por padrão. Esse comportamento é intencional para proteger todos os segredos armazenados nas variáveis de ambiente que seu aplicativo usa durante a fase de compilação.
Para tornar variáveis de ambiente específicas acessíveis ao Next.js, é possível modificar o arquivo de especificação de compilação do Amplify para defini-las nos arquivos de ambiente que o Next.js reconhece. Isso permite que o Amplify carregue essas variáveis de ambiente antes de compilar o aplicativo. O exemplo de especificação de compilação a seguir demonstra como adicionar variáveis de ambiente na seção de comandos de compilação.
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/**/*
Neste exemplo, a seção de comandos de compilação inclui dois comandos que gravam variáveis de ambiente no arquivo .env.production
antes da execução da compilação do aplicativo. O Amplify Hosting permite que seu aplicativo acesse essas variáveis quando o aplicativo recebe tráfego.
A linha a seguir da seção de comandos de compilação no exemplo anterior demonstra como pegar uma variável específica do ambiente de compilação e adicioná-la ao arquivo .env.production
.
- env | grep -e DB_HOST -e DB_USER -e DB_PASS >> .env.production
Se as variáveis existirem em seu ambiente de compilação, o arquivo .env.production
conterá as seguintes variáveis de ambiente.
DB_HOST=localhost
DB_USER=myuser
DB_PASS=mypassword
A linha a seguir da seção de comandos de compilação no exemplo anterior demonstra como adicionar uma variável de ambiente com um prefixo específico ao arquivo .env.production
. Neste exemplo, todas as variáveis com o prefixo NEXT_PUBLIC_
são adicionadas.
- env | grep -e NEXT_PUBLIC_ >> .env.production
Se existirem várias variáveis com o prefixo NEXT_PUBLIC_
no ambiente de compilação, o .env.production
arquivo terá uma aparência semelhante à seguinte.
NEXT_PUBLIC_ANALYTICS_ID=abcdefghijk
NEXT_PUBLIC_GRAPHQL_ENDPOINT=uowelalsmlsadf
NEXT_PUBLIC_SEARCH_KEY=asdfiojslf
NEXT_PUBLIC_SEARCH_ENDPOINT=https://search-url
SSRvariáveis de ambiente para monorepos
Se você estiver implantando um SSR aplicativo em um monorepo e quiser tornar variáveis de ambiente específicas acessíveis ao Next.js, deverá prefixar o .env.production
arquivo com a raiz do aplicativo. O exemplo a seguir de especificação de compilação para uma aplicação Next.js com um monorepo Nx demonstra como adicionar variáveis de ambiente na seção de comandos de compilação.
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
As linhas a seguir da seção de comandos de compilação no exemplo anterior demonstram como pegar variáveis específicas do ambiente de compilação e adicioná-la ao arquivo .env.production
para uma aplicação em um monorepo com a raiz apps/app
da aplicação.
- env | grep -e DB_HOST -e DB_USER -e DB_PASS >> apps/app/.env.production - env | grep -e NEXT_PUBLIC_ >> apps/app/.env.production