如何手动部署带动态路由的SSR NextJS到Amplify(无需Git仓库)
部署带动态路由的Next.js SSR项目到AWS Amplify(无Git仓库/自托管Git场景)
可以部署,以下是两种可行的实现方案:
方案1:通过Amplify CLI手动部署
这是最可靠的方式,适合本地开发后直接推送部署:
- 安装并配置Amplify CLI
- 全局安装CLI工具:
npm install -g @aws-amplify/cli - 执行
amplify configure,按照引导完成AWS账号的身份验证与区域配置
- 全局安装CLI工具:
- 关联本地项目到Amplify应用
- 在Next.js项目根目录运行
amplify init,按提示选择部署环境、AWS区域,完成项目初始化关联
- 在Next.js项目根目录运行
- 配置SSR构建规则
- 在项目根目录创建
amplify.yml文件,写入以下构建配置:version: 1 frontend: phases: preBuild: commands: - npm install build: commands: - npm run build artifacts: baseDirectory: .next files: - '**/*' cache: paths: - node_modules/**/* - 若使用Next.js 13+ App Router,确保构建命令与项目实际一致,
baseDirectory保持为.next即可
- 在项目根目录创建
- 执行部署
- 运行
amplify publish,CLI会自动完成本地构建、产物上传与Amplify服务部署,动态路由会被SSR运行时自动解析
- 运行
方案2:Amplify控制台自定义构建+完整Zip上传
适合偏好控制台操作的场景,绕过默认Zip上传的SSR限制:
- 创建无Git关联的Amplify应用
- 在Amplify控制台选择「新建应用」>「托管Web应用」,选择「无Git提供商」选项
- 配置SSR构建设置
- 进入构建设置页面,点击「编辑」,替换默认配置为方案1中的
amplify.yml内容
- 进入构建设置页面,点击「编辑」,替换默认配置为方案1中的
- 本地构建并打包完整项目
- 在本地执行
npm run build生成.next目录 - 将项目根目录下所有文件(包括
.next、package.json、next.config.js等依赖文件)打包为Zip(仅打包.next会导致SSR服务启动失败)
- 在本地执行
- 上传Zip并部署
- 在Amplify控制台部署页面上传打包好的Zip文件,系统会按照自定义构建配置完成SSR应用部署,动态路由可正常工作
关键注意事项
- 确保
next.config.js中未设置output: 'export',该配置会将项目转为静态导出,无法支持SSR - 项目依赖的环境变量需在Amplify控制台「环境变量」页面配置,或通过
amplify init过程设置 - 动态路由(如
pages/post/[id].js或App Router的app/post/[id]/page.js)无需额外路由配置,Amplify SSR运行时会自动处理
内容的提问来源于stack exchange,提问作者Carlos Alves Jorge
相关产品推荐
相关产品推荐

