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

通过Serverless Framework部署AWS Lambda时调整Prisma schema路径

解决Serverless Framework + Prisma 部署后schema.prisma路径错误问题

问题场景

使用Serverless Framework的aws-node-typescript模板项目集成Prisma时,部署后实例化PrismaClient触发内部服务器错误,日志提示:

ENOENT: no such file or directory, open '/var/task/src/functions/users/schema.prisma'

已配置package: { individually: true, patterns: ["**/*.prisma"] },但打包后的users.zip中,schema.prisma位于users/prisma/目录,而非PrismaClient期望的/var/task/src/functions/users/路径。

解决方案

方案一:实例化PrismaClient时指定schema绝对路径(推荐)

无需调整打包结构,直接在handler中指定部署后schema.prisma的实际路径,保持项目结构整洁:

import { formatJSONResponse } from '@libs/api-gateway';
import { middyfy } from '@libs/lambda';
import { PrismaClient } from '@prisma/client'

const users = async (event) => {
  console.log(`Instantiating PrismaClient inside handler ...`)
  // 指定schema的绝对路径
  const prisma = new PrismaClient({
    schema: '/var/task/prisma/schema.prisma',
    datasources: {
      db: {
        url: process.env.DATABASE_URL,
      },
    },
  })

  return formatJSONResponse({
    message: `Hello, ${event.queryStringParameters.name || 'there'} welcome to the exciting Serverless world!`,
    event,
  });
};

export const main = middyfy(users);

方案二:调整Serverless打包规则,复制schema到目标目录

如果需要将schema.prisma直接放到函数目录下,可通过Serverless的打包路径映射规则实现。在serverless.ts的users函数配置中单独设置打包规则:

// serverless.ts 中functions配置片段
functions: {
  // ... 其他函数配置
  users: {
    handler: 'src/functions/users/main.handler',
    events: [
      {
        httpApi: {
          path: '/users',
          method: 'get',
        },
      },
    ],
    package: {
      patterns: [
        // 复制根目录的schema.prisma到函数目录
        {
          from: '../../prisma/schema.prisma', // 相对于users函数目录的路径
          to: './schema.prisma' // 打包后放置的目标路径
        }
      ]
    }
  }
}

注意事项

  1. 确保DATABASE_URL环境变量在Serverless配置中正确配置,且Railway的PostgreSQL数据库安全组允许AWS函数的IP访问
  2. 执行sls package后可解压对应zip包,验证schema.prisma的路径是否符合预期,再进行部署

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:25:39