我一直在关注无服务器框架上的视频教程,例如this one,根据我收集的信息,使用框架似乎是最有效的管理方式之一aws lambda函数。在上面的视频链接中,给出了一个示例,该示例使用lambda函数连接到DynamoDB表,然后保存数据。我需要做的是连接到MongoDB表,然后从中获取数据。
我只找到了使用DynamoDB和Serverless但没有使用MongoDB的例子。我认为这个过程应该是相似的,但事实似乎并非如此。我发现this tutorial但它没有使用无服务器框架。
以下是在无服务器框架中从lambda连接并保存到Dynamo db表的示例:
const uuidV1 = require('uuid/v1');
const AWS = require('aws-sdk');
const promisify = require('es6-promisify');
const _ = require('lodash');
const dynamo = new AWS.DynamoDB.DocumentClient();
module.exports.saveUserToDatabase = function(userId, coffeeType, coffeeSize) {
console.log('saveUserToDatabase');
const item = {};
item.drink = coffeeType;
item.size = coffeeSize;
item.userId = userId;
return saveItemToTable('coffee-user-table', item);
};
以下代码段是用于使用名为lambda-local的npm包连接到MongoDB Atlas数据库的代码:
var MongoClient = require('mongodb').MongoClient;
let atlas_connection_uri;
let cachedDb = null;
exports.handler = (event, context, callback) => {
var uri = process.env['MONGODB_ATLAS_CLUSTER_URI'];
if (atlas_connection_uri != null) {
processEvent(event, context, callback);
}
else {
atlas_connection_uri = uri;
console.log('the Atlas connection string is ' + atlas_connection_uri);
processEvent(event, context, callback);
}
};
function processEvent(event, context, callback) {
console.log('Calling MongoDB Atlas from AWS Lambda with event: ' + JSON.stringify(event));
}
除了无服务器框架之外,有没有办法实现MongoDB Atlas和npm lambda-local使用的逻辑?