Solução de problemas de implantações de SSR - AWS AmplifyHospedagem

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á.

Solução de problemas de implantações de SSR

Se você tiver problemas inesperados ao implantar um aplicativo SSR com a computação do Amplify Hosting, revise os seguintes tópicos de solução de problemas.

As rotas da Edge API fazem com que sua compilação do Next.js falhe

Atualmente, o Amplify não oferece suporte às rotas da API Next.js Edge. Você deve usar APIs e middleware não periféricos ao hospedar seu aplicativo com o Amplify.

A regeneração estática incremental sob demanda não está funcionando para seu aplicativo

A partir da versão 12.2.0, o Next.js oferece suporte à regeneração estática incremental sob demanda (ISR) para limpar manualmente o cache Next.js de uma página específica. No entanto, o Amplify atualmente não oferece suporte a ISR sob demanda. Se seu aplicativo estiver usando a revalidação sob demanda do Next.js, esse recurso não funcionará quando você implantar seu aplicativo no Amplify.

O tamanho da saída de compilação é muito grande

Atualmente, o tamanho máximo de saída de compilação que o Amplify suporta para aplicativos Next.js 12 e 13 usando a plataforma Web Compute é de 200 MB.

Se você receber um erro informando que o tamanho da saída da compilação excede o tamanho máximo permitido, talvez você consiga reduzir o tamanho da saída da compilação usando o JavaScript bundler esbuild. Adicione os comandos a seguir à etapa de criação noamplify.yml arquivo do aplicativo.

- allfiles=$(ls -al ./.next/standalone/**/*.js) - npx esbuild $allfiles --minify --outdir=.next/standalone --platform=node --target=node16 --format=cjs --allow-overwrite

Sua compilação falha com um erro de falta de memória

O Next.js permite que você armazene artefatos de construção em cache para melhorar o desempenho nas compilações subsequentes. Além disso, oAWS CodeBuild contêiner do Amplify comprime e carrega esse cache para o Amazon S3, em seu nome, para melhorar o desempenho de compilação subsequente. Isso pode fazer com que sua compilação falhe com um erro de falta de memória.

Execute as ações a seguir para evitar que seu aplicativo exceda o limite de memória durante a fase de criação. Primeiro, remova.next/cache/**/* da seção cache.paths das configurações de compilação. Em seguida, remova a variável deNODE_OPTIONS ambiente do seu arquivo de configurações de compilação. Em vez disso, defina a variável deNODE_OPTIONS ambiente no console do Amplify para definir o limite máximo de memória do Node. Para obter mais informações sobre como configurar variáveis de ambiente usando o console do Amplify, consulteDefinição de variáveis de ambiente.

Depois de fazer essas alterações, tente criar novamente. Se for bem-sucedido, adicione.next/cache/**/* novamente à seção cache.paths do seu arquivo de configurações de compilação.

Para obter mais informações sobre a configuração do cache do Next.js para melhorar o desempenho da compilação, consulte a AWS CodeBuild no site Next.js.