Una construcción de CDK para implementar una aplicación NextJS usando AWS CDK. Versiones de NextJS compatibles:> = 12.3.0+ (incluye 13.0.0+)
Utiliza el modo de compilación de salida independiente.
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/ carpeta. Cloudfront tiene un límite suave de 25 comportamientos de caché por distribución. Por lo tanto, se recomienda incluir todos los activos que pueden estar bajo una carpeta de nivel superior como public/static/ . Obtenga más información en Docs de Next Open aquí. Disponible en Construct Hub.
Vea las aplicaciones de CDK de ejemplo aquí que incluyen:
Estamos en el canal #Open-Next en el Servidor Stack Discord.
Implementa un sitio estático NextJS con representación del lado del servidor y soporte de API. Utiliza AWS Lambda y CloudFront.
Hay un nuevo (desde el siguiente 12) modo de salida independiente que utiliza el rastreo de salida para generar un servidor mínimo y archivos estáticos. Este servidor independiente se puede convertir en una distribución de Cloudfront y un controlador Lambda que maneja SSR, API y enrutamiento.
El origen predeterminado de CloudFront primero verifica S3 para archivos estáticos y vuelve a un origen HTTP utilizando una URL de la función Lambda.
Este enfoque es más compatible con las nuevas características de NextJS, como la configuración de ESM, el middleware, el next-autor y React Server Components ("AppDir").
El proyecto sin material de @serverless-nextjs utiliza el objetivo de compilación NextJS serverless desaprobado que evita el uso de nuevas características. Esta construcción se creó para usar la nueva compilación de salida standalone y las nuevas características de AWS como URL de funciones Lambda y orígenes respaldados.
Es posible que desee mirar la pila sin servidor y su construcción NextJSSITE para una experiencia mejorada de desarrollador si está creando aplicaciones sin servidor en CDK.
Construido en la parte superior de Next Open, que se construyó parcialmente utilizando el núcleo original de CDK-NextJS-Standalone.
Ver contribución.
Ver cambios importantes.