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 aplicativos renderizados do lado do servidor
Se você tiver problemas inesperados ao implantar um SSR aplicativo com a computação do Amplify Hosting, consulte os tópicos de solução de problemas a seguir. Se você não encontrar uma solução para seu problema aqui, consulte o guia de solução de problemas de computação na SSR web
Tópicos
- Você está usando um adaptador de framework
- APIAs rotas Edge fazem com que sua compilação do Next.js falhe
- A regeneração estática incremental sob demanda não está funcionando para seu aplicativo
- A saída de compilação do seu aplicativo excede o tamanho máximo permitido
- Sua compilação falha com um erro de falta de memória
- O tamanho da HTTP resposta é muito grande
Você está usando um adaptador de framework
Se você estiver tendo problemas para implantar um SSR aplicativo que usa um adaptador de estrutura, consulteUsando adaptadores de código aberto.
APIAs rotas Edge fazem com que sua compilação do Next.js falhe
Atualmente, o Amplify não oferece suporte ao Next.js Edge API Routes. Você deve usar sistemas não periféricos APIs e middleware 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 (ISR) para limpar manualmente o cache do Next.js de uma página específica. No entanto, o Amplify atualmente não oferece suporte ao On-Demand. ISR Se seu aplicativo estiver usando a revalidação sob demanda do Next.js, esse atributo não funcionará quando você implantar seu aplicativo no Amplify.
A saída de compilação do seu aplicativo excede o tamanho máximo permitido
Atualmente, o tamanho máximo de saída de compilação compatível com o Amplify para SSR aplicativos é de 220 MB. Se você receber uma mensagem de erro informando que o tamanho da saída de compilação do seu aplicativo excede o tamanho máximo permitido, tome medidas para reduzi-lo.
Para reduzir o tamanho da saída de compilação de um aplicativo, você pode inspecionar os artefatos de criação do aplicativo e identificar quaisquer dependências grandes a serem atualizadas ou removidas. Primeiro, baixe os artefatos de construção para o seu computador local. Em seguida, verifique o tamanho dos diretórios. Por exemplo, o node_modules
diretório pode conter binários como @swc
e @esbuild
que são referenciados pelos arquivos de tempo de execução do servidor Next.js. Como esses binários não são necessários no tempo de execução, você pode excluí-los após a compilação.
Use as instruções a seguir para baixar a saída de compilação de um aplicativo e inspecionar o tamanho dos diretórios usando a AWS Command Line Interface (CLI).
Para baixar e inspecionar a saída de compilação de um aplicativo Next.js
-
Abra uma janela de terminal e execute o comando a seguir. Altere o ID do aplicativo, o nome da filial e o ID do trabalho para suas próprias informações. Para a ID do trabalho, use o número da compilação com falha que você está investigando.
aws amplify get-job --app-id
abcd1234
--branch-namemain
--job-id2
-
Na saída do terminal, localize os artefatos pré-assinados URL na seção
job
,steps
,stepName: "BUILD"
. O URL é destacado em vermelho no exemplo de saída a seguir."job": { "summary": { "jobArn": "arn:aws:amplify:us-west-2:111122223333:apps/abcd1234/main/jobs/0000000002", "jobId": "2", "commitId": "HEAD", "commitTime": "2024-02-08T21:54:42.398000+00:00", "startTime": "2024-02-08T21:54:42.674000+00:00", "status": "SUCCEED", "endTime": "2024-02-08T22:03:58.071000+00:00" }, "steps": [ { "stepName": "BUILD", "startTime": "2024-02-08T21:54:42.693000+00:00", "status": "SUCCEED", "endTime": "2024-02-08T22:03:30.897000+00:00", "logUrl":
"https://aws-amplify-prod-us-west-2-artifacts.s3.us-west-2.amazonaws.com/abcd1234/main/0000000002/BUILD/log.txt?X-Amz-Security-Token=IQoJb3JpZ2luX2V...Example
-
Copie e cole URL em uma janela do navegador. Um
artifacts.zip
arquivo é baixado para o seu computador local. Essa é a saída da sua compilação. -
Execute o comando de uso do
du
disco para inspecionar o tamanho dos diretórios. O comando de exemplo a seguir retorna o tamanho doscompute
static
diretórios e.du -csh compute static
Veja a seguir um exemplo da saída com informações de tamanho para os
static
diretórioscompute
e.29M compute 3.8M static 33M total
-
Abra o
compute
diretório e localize anode_modules
pasta. Revise suas dependências em busca de arquivos que você possa atualizar ou remover para diminuir o tamanho da pasta. -
Se seu aplicativo incluir binários que não são necessários no tempo de execução, exclua-os após a compilação adicionando os comandos a seguir à seção de compilação do
amplify.yml
arquivo do seu aplicativo.- rm -f node_modules/@swc/core-linux-x64-gnu/swc.linux-x64-gnu.node - rm -f node_modules/@swc/core-linux-x64-musl/swc.linux-x64-musl.node
Veja a seguir um exemplo da seção de comandos de compilação de um
amplify.yml
arquivo com esses comandos adicionados após a execução de uma compilação de produção.frontend: phases: build: commands: -npm run build // After running a production build, delete the files - rm -f node_modules/@swc/core-linux-x64-gnu/swc.linux-x64-gnu.node - rm -f node_modules/@swc/core-linux-x64-musl/swc.linux-x64-musl.node
Sua compilação falha com um erro de falta de memória
O Next.js permite que você armazene artefatos de compilação em cache para melhorar o desempenho em compilações subsequentes. Além disso, o Amplify AWS CodeBuild O contêiner comprime e carrega esse cache no Amazon S3, em seu nome, para melhorar o desempenho da 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 compilação. Primeiro, remova .next/cache/**/*
da seção cache.paths das suas configurações da compilação. Em seguida, remova a variável de ambiente NODE_OPTIONS
do seu arquivo de configurações da compilação. Em vez disso, defina a variável de ambiente NODE_OPTIONS
no console do Amplify para definir o limite máximo de memória do nó. Para mais informações sobre como configurar as variáveis de ambiente usando o console do Amplify, consulte Definição de variáveis de ambiente.
Depois de fazer essas alterações, tente sua versão novamente. Se for bem-sucedido, adicione .next/cache/**/*
novamente à seção cache.paths do seu arquivo de configurações da compilação.
Para obter mais informações sobre a configuração do cache do Next.js para melhorar o desempenho da compilação, consulte o AWS CodeBuild
O tamanho da HTTP resposta é muito grande
Atualmente, o tamanho máximo de resposta que o Amplify suporta para aplicativos Next.js 12 e posteriores usando a plataforma Web Compute é de 5,72 MB. As respostas acima desse limite retornam erros 504 sem conteúdo para os clientes.