我使用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
答案 0 :(得分:1)
我发现了问题。我的RDS与默认安全组不同。我不得不改变它以使其发挥作用。