CDK Construct для развертывания приложения NextJS с использованием AWS CDK. Поддерживаемые версии NextJS:> = 12.3.0+ (включает 13.0.0+)
Использует автономный режим сборки выходной установки.
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/ папке. CloudFront имеет мягкий предел из 25 поведений кэша на распределение. Поэтому рекомендуется включить все активы, которые могут находиться под папкой на верхнем уровне, такой как public/static/ . Узнайте больше в открытых документах здесь. Доступно на конструктивном центре.
См. Пример приложений CDK здесь, включая:
Мы находимся в канале #Open-Next в бессерновом стеке Discord.
Развертывает статический сайт NextJS с рендерингом на стороне сервера и поддержкой API. Использует AWS Lambda и Cloudfront.
Существует новый (с следующих 12) автономный выходной режим, который использует выходной трассировку для генерации минимального сервера и статических файлов. Этот автономный сервер может быть преобразован в распределение Cloudfront и обработчик Lambda, который обрабатывает SSR, API и маршрутизацию.
Происхождение по умолчанию CloudFront сначала проверяет S3 на статические файлы и возвращается к источнику HTTP, используя URL -адрес функции Lambda.
Этот подход наиболее совместим с новыми функциями NextJS, такими как конфигурация ESM, промежуточное программное обеспечение, следующие компоненты и сервер React («AppDir»).
В проекте Unmainted @Serverless-NextJS используется устаревшая целевая цель serverless NextJS, которая предотвращает использование новых функций. Эта конструкция была создана для использования новой standalone сборки вывода и более новых функций AWS, таких как URL -адреса Function Function и запасное происхождение.
Возможно, вы захотите посмотреть на стек без серверов и его конструкцию NextJSSite для улучшенного опыта разработчика, если вы создаете приложения без серверов на CDK.
Построенный на вершине открытого NEXT, который был частично построен с использованием оригинального ядра CDK-NEXTJS-Standalone.
Смотрите внести свой вклад.
Смотрите серьезные изменения.