CDK สร้างขึ้นเพื่อปรับใช้แอป 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/ เรียนรู้เพิ่มเติมในเอกสาร Open-Next ที่นี่ มีอยู่ในศูนย์สร้าง
ดูตัวอย่างแอพ CDK ที่นี่รวมถึง:
เราอยู่ในช่อง #open-next บนสแต็คแบบไม่เคยมีเซิร์ฟเวอร์
ปรับใช้ไซต์คงที่ NextJS พร้อมการแสดงผลฝั่งเซิร์ฟเวอร์และการสนับสนุน API ใช้ AWS Lambda และ Cloudfront
มีโหมดเอาต์พุตแบบสแตนด์อโลนใหม่ (ตั้งแต่ 12) ซึ่งใช้การติดตามเอาต์พุตเพื่อสร้างเซิร์ฟเวอร์น้อยที่สุดและไฟล์คงที่ เซิร์ฟเวอร์แบบสแตนด์อโลนนี้สามารถแปลงเป็นการแจกแจงแบบคลาวด์และตัวจัดการแลมบ์ดาที่จัดการ SSR, API และการกำหนดเส้นทาง
ต้นกำเนิดเริ่มต้นของ CloudFront ตรวจสอบ S3 ก่อนสำหรับไฟล์คงที่และกลับไปที่แหล่งกำเนิด HTTP โดยใช้ URL ฟังก์ชั่น Lambda
วิธีการนี้เข้ากันได้มากที่สุดกับคุณสมบัติ NextJS ใหม่เช่นการกำหนดค่า ESM, มิดเดิลแวร์, ส่วนประกอบถัดไปและเซิร์ฟเวอร์ React ("AppDir")
โครงการ @serverless-nextjs unmaintained ใช้เป้าหมายการสร้าง serverless NextJs ที่ไม่ได้รับการคัดเลือกซึ่งป้องกันการใช้คุณสมบัติใหม่ โครงสร้างนี้ถูกสร้างขึ้นเพื่อใช้การสร้างเอาต์พุต standalone ใหม่และคุณสมบัติ AWS ที่ใหม่กว่าเช่น URL ฟังก์ชั่น Lambda และต้นกำเนิดทางเลือก
คุณอาจต้องการดูที่ Serverless Stack และ NextJSSite Construct สำหรับประสบการณ์นักพัฒนาที่ได้รับการปรับปรุงหากคุณกำลังสร้างแอปพลิเคชันที่ไม่มีเซิร์ฟเวอร์บน CDK
สร้างขึ้นบน Open-Next ซึ่งถูกสร้างขึ้นบางส่วนโดยใช้แกนดั้งเดิมของ CDK-nextjs-standalone
ดูมีส่วนร่วม
ดูการเปลี่ยนแปลงที่สำคัญ