在nodejs中的AWS Lambda函数之间共享模型的最佳实践是什么?

我正在从事电子商务项目(SOA体系结构)。 有多个应用程序(NodeJS express / mongoose)及其各自的API相互通信 例如: -App.1用于产品管理 -app.2用于购物车管理 -用于用户管理的app.3 ecc ecc ...

现在,我想在AWS Lambda中移动这些应用程序并将其迁移到FaaS架构,但是我不清楚多重功能如何共享通用模型。

例如: app1目前具有自己的产品模型:

productModel.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const productSchema = new Schema({
    insDate: {
        type: Schema.Types.Date,required: true,default: Date.now()
    },description: {
        type: Schema.Types.String,trim: true
    },price: {
        type: Schema.Types.Number,required: true
    }
});

const Product = mongoose.model('products',productSchema);

module.exports = Product;

它在控制器中用于获取或更新数据的

productController.js-内部方法getData

Product.find()
    .then(products=> {
        res.send(products);
    })
    .catch(err => {
        console.log('err',err);
    });

productController.js-内部方法updateData

var product = new Product({
    description: req.body.description,price: req.body.price,});
product.save(function (err) {
    if (err) {
        console.log(err);
        return;
    }
});

现在我的目标是创建两个AWS Lambda函数:

1)第一个获取数据的人

2)第二次更新数据

我该怎么做?我的想法是创建两个安装了express和mongoose库的不同的nodejs项目(和存储库)。

第一个只有在控制器中获取数据的方法,第二个只有可以更新数据的方法,对吧?

两个函数共享相同的ProductModel,这是最好的方法吗? 1)在两个项目上都复制productModel->我认为这不是一个可维护的好主意。 2)创建一个只有一个具有多个功能的单一模型的整体存储库,该模型部署在多个AWS Lambda实例上->我认为创建单个整体存储库不是一个好主意 3)为productModel创建一个库,并将其作为两个项目的依赖项共享->这样好吗?我认为这种方法非常适合在单个点上处理模型更改并更新两个项目。 4)还有其他解决方案吗?

感谢您的帮助

panda781124 回答:在nodejs中的AWS Lambda函数之间共享模型的最佳实践是什么?

对于模型,您可以使用调用的lambda层。 https://docs.aws.amazon.com/de_de/lambda/latest/dg/configuration-layers.html

本文链接:https://www.f2er.com/3123745.html

大家都在问