You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何手动部署带动态路由的SSR NextJS到Amplify(无需Git仓库)

部署带动态路由的Next.js SSR项目到AWS Amplify(无Git仓库/自托管Git场景)

可以部署,以下是两种可行的实现方案:

方案1:通过Amplify CLI手动部署

这是最可靠的方式,适合本地开发后直接推送部署:

  1. 安装并配置Amplify CLI
    • 全局安装CLI工具:npm install -g @aws-amplify/cli
    • 执行amplify configure,按照引导完成AWS账号的身份验证与区域配置
  2. 关联本地项目到Amplify应用
    • 在Next.js项目根目录运行amplify init,按提示选择部署环境、AWS区域,完成项目初始化关联
  3. 配置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即可
  4. 执行部署
    • 运行amplify publish,CLI会自动完成本地构建、产物上传与Amplify服务部署,动态路由会被SSR运行时自动解析

方案2:Amplify控制台自定义构建+完整Zip上传

适合偏好控制台操作的场景,绕过默认Zip上传的SSR限制:

  1. 创建无Git关联的Amplify应用
    • 在Amplify控制台选择「新建应用」>「托管Web应用」,选择「无Git提供商」选项
  2. 配置SSR构建设置
    • 进入构建设置页面,点击「编辑」,替换默认配置为方案1中的amplify.yml内容
  3. 本地构建并打包完整项目
    • 在本地执行npm run build生成.next目录
    • 将项目根目录下所有文件(包括.next、package.json、next.config.js等依赖文件)打包为Zip(仅打包.next会导致SSR服务启动失败)
  4. 上传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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:50:03