Ein CDK -Konstrukt, um eine NextJS -App mit AWS CDK bereitzustellen. Unterstützt NextJS -Versionen:> = 12.3.0+ (enthält 13.0.0+)
Verwendet den Standalone -Ausgangsbuild -Modus.
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/ Ordner erstellt. CloudFront hat eine Softgrenze von 25 Cache -Verhaltensweisen pro Verteilung. Daher wird empfohlen, alle Vermögenswerte aufzunehmen, die unter einem Ordner auf höchstem Niveau wie public/static/ werden können. Erfahren Sie hier mehr in Open-Next-Dokumenten. Erhältlich auf dem Konstrukt -Hub.
Siehe Beispiel CDK -Apps hier, einschließlich:
Wir sind im #Open-Next-Kanal auf der serverlosen Stapel-Zwietracht.
Bereitstellen eine statische Site von NextJs mit serverseitigem Rendering und API-Unterstützung. Verwendet AWS Lambda und Cloudfront.
Es gibt einen neuen (seit nächsten 12) Standalone -Ausgangsmodus, in dem die Ausgabeverfolgung verwendet wird, um einen minimalen Server- und statischen Dateien zu generieren. Dieser eigenständige Server kann in eine Cloudfront -Verteilung und einen Lambda -Handler umgewandelt werden, der SSR, API und Routing übernimmt.
Der CloudFront -Standard -Ursprung überprüft zuerst S3 auf statische Dateien und fällt mit einer Lambda -Funktion URL auf einen HTTP -Ursprung zurück.
Dieser Ansatz ist am kompatibelsten mit neuen NextJS-Funktionen wie ESM-Konfiguration, Middleware, Next-Auth und React Server-Komponenten ("AppDir").
Das nicht berücksichtigte @Serverless-NextJS-Projekt verwendet das veraltete serverless NextJS-Build-Ziel, das die Verwendung neuer Funktionen verhindert. Dieses Konstrukt wurde erstellt, um den neuen standalone Output Build und neuere AWS -Funktionen wie Lambda -Funktions -URLs und Fallback -Ursprünge zu verwenden.
Möglicherweise möchten Sie den serverlosen Stack und das NextJSSite -Konstrukt für eine verbesserte Entwicklererfahrung untersuchen, wenn Sie serverlose Anwendungen auf CDK erstellen.
Auf dem Open-Next basiert, das teilweise mit dem ursprünglichen Kern von CDK-NextJS-Standalone gebaut wurde.
Siehe Beitrag.
Siehe Hauptveränderungen.