从未在 Lambda 函数中调用与 Sequelize 的 RDS 连接

Posted

技术标签:

【中文标题】从未在 Lambda 函数中调用与 Sequelize 的 RDS 连接【英文标题】:RDS connection with Sequelize is never called in Lambda function 【发布时间】:2018-10-05 06:10:40 【问题描述】:

我将 AWS AppSync 与 Lambda 函数一起用作解析程序。 这些函数查询 RDS Postgres 数据库(使用 Sequelize)。

我的问题是,无论我做什么,我的查询都不会被触发。我的代码有什么问题?

import  Context, Callback  from 'aws-lambda';
import * as Sequelize from 'sequelize';

const sequelize = new Sequelize(
  database: process.env.RDS_NAME,
  username: process.env.RDS_USERNAME,
  password: process.env.RDS_PASSWORD,
  host: process.env.RDS_HOST,
  port: 5432,
  dialect: 'postgres',
  pool:  idle: 1000, max: 1 
);

const options = 
  timestamps: false,
  freezeTableName: true
;

const Node = sequelize.define(
  'node',
  
    nodeId: 
      type: Sequelize.INTEGER,
      primaryKey: true,
      autoIncrement: true
    ,
    slug: 
      type: Sequelize.STRING
    
  ,
  options
);

export const getUser = async (
  event: any,
  context: Context,
  callback: Callback
) => 
  context.callbackWaitsForEmptyEventLoop = false;

  Node.findAll(
    where: 
  )
    .then(nodes => 
      console.log('nodes', nodes);
      callback(null, 
        id: 1,
        name: JSON.stringify(nodes)
      );
    )
    .catch(err => callback(err));
;

我看过这篇文章,但没有成功。 Sequelize Code Not Executing Inside AWS Lambda

【问题讨论】:

【参考方案1】:

我发现了问题。我的 RDS 位于与默认安全组不同的安全组中。我必须对其进行更改才能使其正常工作。

【讨论】:

以上是关于从未在 Lambda 函数中调用与 Sequelize 的 RDS 连接的主要内容,如果未能解决你的问题,请参考以下文章

Python lambda函数

函数式编程-Lambda与Stream

从另一个未被调用的 Lambda 函数中调用 Lambda 函数

Lightsail 与 Lambda + S3

如何从当前 Lambda 函数调用另一个 Lambda 函数?

在 AWS lambda 上运行 graphql 应用程序