cdk nextjs
v4.1.1
使用AWS CDK部署NextJS應用的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/文件夾中的每個頂級文件或目錄創建緩存行為。雲方面的軟限制為每個分佈的25個緩存行為。因此,建議包括所有可以在public/static/靜態文件夾下的資產。在此處了解更多信息。 在構造中心上可用。
請參閱此處的示例CDK應用程序包括:
我們在無服務器堆棧不和諧的#開放式通道中。
通過服務器端渲染和API支持部署NextJS靜態站點。使用AWS lambda和Cloudfront。
有一個新的(由於下一個12)獨立輸出模式,該模式使用輸出跟踪來生成最小的服務器和靜態文件。該獨立的服務器可以轉換為雲額分佈和處理SSR,API和路由的Lambda處理程序。
CloudFront默認來源首先檢查S3中的靜態文件,並使用Lambda函數URL降回HTTP Origin。
這種方法與ESM配置,中間件,Next-auth和React Server組件(“ AppDir”)等新的NextJS功能最兼容。
未經維護的 @server-nextjs項目使用了不棄用的serverless Nextjs構建目標,從而阻止了使用新功能。創建該構造是為了使用新的standalone輸出構建和較新的AWS功能,例如lambda函數URL和後備起源。
如果您要在CDK上構建無服務器應用程序,則可能需要查看無服務器堆棧及其NextJsSite構造,以進行改進的開發人員體驗。
建立在開放式隔離的頂部,該開放式隔離是使用CDK-Nextjs-Standalone的原始核心部分建造的。
見貢獻。
請參閱重大變化。