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的原始核心部分建造的。
见贡献。
请参阅重大变化。