Postgresql 错误请使用AWS Lambda无服务器框架手动安装pg软件包

Postgresql 错误请使用AWS Lambda无服务器框架手动安装pg软件包,postgresql,amazon-web-services,aws-lambda,serverless,Postgresql,Amazon Web Services,Aws Lambda,Serverless,最近,部署我的无服务应用程序让我头疼不已 我有一个连接到Postgresql数据库的lambda函数。要部署我的应用程序,我使用无服务器框架 因此,在测试代码时执行代码后,我得到以下错误: 请手动安装pg软件包 但是,我已经在package.json上安装了pg 尽管如此,错误还是发生了 那么,如果pg安装正确,为什么会出现这个错误呢?在数小时的搜索和更改代码后,我决定从头开始重构代码 我去掉了serverless中的所有插件,输入了原始代码,一切正常 有了这个我就有了方向。我的一些无服务器插件

最近,部署我的无服务应用程序让我头疼不已

我有一个连接到Postgresql数据库的lambda函数。要部署我的应用程序,我使用无服务器框架

因此,在测试代码时执行代码后,我得到以下错误:

请手动安装pg软件包

但是,我已经在package.json上安装了pg

尽管如此,错误还是发生了


那么,如果pg安装正确,为什么会出现这个错误呢?

在数小时的搜索和更改代码后,我决定从头开始重构代码

我去掉了serverless中的所有插件,输入了原始代码,一切正常

有了这个我就有了方向。我的一些无服务器插件中断了我与Postgresql的连接

所以,在测试之后,我得到了突破,因为我使用的插件优化了我的应用程序

经过搜索,我在包裹上找到了答案

要将Sequelize包与pg一起使用,您需要从Webpack中忽略它,并使用DiagnosticModule选项。在这里阅读更多

在serverless.yml中:

custom:
  bundle:
    ignorePackages:
      - pg-native
在你的Lambda代码中:

const sequelize = new Sequelize(
  process.env.DB_NAME,
  process.env.DB_USERNAME,
  process.env.DB_PASSWORD,
  {
    host: process.env.DB_HOST,
    dialect: process.env.DB_DIALECT,
    dialectModule: pg
  }
);
就这样