Um construto CDK para implantar um aplicativo NEXTJS usando AWS CDK. Versões NextJs suportadas:> = 12.3.0+ (inclui 13.0.0+)
Usa o modo de construção de saída independente.
import { App , Stack , StackProps } from 'aws-cdk-lib' ;
import { Construct } from 'constructs' ;
import { Nextjs } from 'cdk-nextjs-standalone' ;
class WebStack extends Stack {
constructor ( scope : Construct , id : string , props ?: StackProps ) {
super ( scope , id , props ) ;
const nextjs = new Nextjs ( this , 'Nextjs' , {
nextjsPath : './web' , // relative path from your project root to NextJS
} ) ;
new CfnOutput ( this , "CloudFrontDistributionDomain" , {
value : nextjs . distribution . distributionDomain ,
} ) ;
}
}
const app = new App ( ) ;
new WebStack ( app , 'web' ) ; public/ . O CloudFront possui um limite suave de 25 comportamentos de cache por distribuição. Portanto, é recomendável incluir todos os ativos que podem estar em uma pasta de nível superior, como public/static/ . Saiba mais em documentos abertos aqui. Disponível no hub de construção.
Veja o exemplo de aplicativos CDK aqui, incluindo:
Estamos no canal #aberto na pilha sem servidor Discord.
Implanta um site estático NextJS com renderização do servidor e suporte à API. Usa a AWS Lambda e CloudFront.
Há um novo modo de saída independente (desde 12) que usa rastreamento de saída para gerar um servidor mínimo e arquivos estáticos. Este servidor independente pode ser convertido em uma distribuição em nuvem e um manipulador de lambda que lida com SSR, API e roteamento.
A origem padrão do CloudFront primeiro verifica o S3 quanto a arquivos estáticos e volta a uma origem HTTP usando um URL da função Lambda.
Essa abordagem é mais compatível com os novos recursos do NextJS, como configuração ESM, middleware, próxima-autor e componentes do servidor React ("AppDir").
O Projeto Inconjunto @Serverless-NEXTJS usa o destino de criação do NextJS serverless , que impede o uso de novos recursos. Esse construto foi criado para usar a nova construção de saída standalone e recursos mais recentes da AWS, como URLs de função lambda e origens de fallback.
Você pode olhar para a pilha sem servidor e seu próximo JSSITE Construct para obter uma experiência aprimorada do desenvolvedor se estiver criando aplicativos sem servidor no CDK.
Construído em cima do Open-Next, que foi parcialmente construído usando o núcleo original do CDK-NEXTJS-STANDALONE.
Veja contribuir.
Veja grandes mudanças.