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

NextJS 14部署AWS Amplify后服务端日志无法在CloudWatch显示

AWS Amplify部署NextJS 14服务端日志与API验证问题解决方案

一、查看服务端console.log的方法

  • 服务端API在Amplify中以Lambda函数形式运行,直接进入AWS控制台的Lambda服务,找到名称包含amplify-nextjs-server-前缀的对应函数,查看其关联的CloudWatch日志组,即可获取服务端的console.log输出。
  • 若日志仍未出现,需先检查部署配置是否正确打包了服务端代码(见第三部分)。

二、验证服务端API是否执行的方法

  • 直接调用API端点:用curl或Postman直接请求https://你的Amplify域名/api/auth,观察返回结果是否符合预期,快速确认API是否正常响应。
  • 添加自定义响应标识:在服务端API路由文件(如app/api/auth/route.ts)中添加自定义响应头,示例代码:
    export async function POST(request: Request) {
      // 你的业务逻辑
      return new Response(JSON.stringify({ Token: "xxx" }), {
        headers: { "X-Server-Executed": "true" }
      });
    }
    
    客户端调用后查看响应头,若存在X-Server-Executed字段,则说明服务端代码已执行。
  • 写入外部存储:在服务端API中添加简单的写入逻辑,比如向DynamoDB或S3写入一条日志记录,通过查看存储内容确认代码运行状态。

三、修复部署配置问题

你的next.config.js启用了output: 'standalone',但Amplify的artifacts配置未匹配该模式的产物路径,导致服务端代码未正确部署。修改部署配置如下:

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci --cache .npm --prefer-offline
    build:
      commands:
        - env | grep -e NEXT_PUBLIC_ >> .env.production
        - npm run build
  artifacts:
    baseDirectory: .next/standalone
    files:
      - '**/*'
      - .next/static/**/*
      - public/**/*
  cache:
    paths:
      - .next/cache/**/*
      - .npm/**/*
  • baseDirectory改为.next/standalone:对应standalone模式的核心运行文件目录。
  • 新增.next/static/**/*和public/**/*:确保静态资源和公共文件被正确上传,避免页面资源缺失。

另外,需确认服务端API路由文件的方法导出正确(如export async function POST(...)),若路由文件不存在或方法导出错误,API将无法执行。

内容的提问来源于stack exchange,提问作者Dvex

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:13:17