Une construction CDK pour déployer une application NextJS à l'aide d'AWS CDK. Versions NextJS prises en charge:> = 12.3.0 + (comprend 13.0.0+)
Utilise le mode de construction de sortie autonome.
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/ dossier. CloudFront a une limite douce de 25 comportements de cache par distribution. Par conséquent, il est recommandé d'inclure tous les actifs qui peuvent être sous un dossier de haut niveau comme public/static/ . En savoir plus dans les documents ouverts ici. Disponible sur Construct Hub.
Voir l'exemple d'applications CDK ici, y compris:
Nous sommes dans la chaîne # # Open-Next sur la discorde de pile sans serveur.
Déploie un site statique NextJS avec rendu côté serveur et prise en charge de l'API. Utilise AWS Lambda et CloudFront.
Il existe un nouveau mode de sortie autonome (depuis 12 prochains) qui utilise le traçage de sortie pour générer un serveur minimal et des fichiers statiques. Ce serveur autonome peut être converti en distribution CloudFront et un gestionnaire lambda qui gère le SSR, l'API et le routage.
L'origine par défaut de CloudFront vérifie d'abord S3 pour les fichiers statiques et retombe à une origine HTTP à l'aide d'une URL de fonction lambda.
Cette approche est la plus compatible avec les nouvelles fonctionnalités NEXTJS telles que les composants de la configuration ESM, du middleware, de l'automne suivant et React Server ("AppDir").
Le projet non entretenu @ serverless-nextjs utilise la cible de build NextJS serverless dépréciée qui empêche l'utilisation de nouvelles fonctionnalités. Cette construction a été créée pour utiliser la nouvelle version de sortie standalone et les fonctionnalités AWS plus récentes comme les URL de la fonction lambda et les origines de secours.
Vous voudrez peut-être examiner la pile sans serveur et sa construction NextJSSite pour une expérience de développeur améliorée si vous créez des applications sans serveur sur CDK.
Construit au-dessus de l'Open-Next, qui a été partiellement construit en utilisant le noyau d'origine de CDK-NEXTJS-standalone.
Voir contribuer.
Voir les changements majeurs.