【发布时间】:2016-07-19 10:20:03
【问题描述】:
我们的 couchbase 服务器设置有三个 EC2 实例,第一个实例只运行数据库服务,第二个实例运行索引服务,第三个实例运行查询服务。
索引和查询服务器是使用 couchbase Web 控制台添加到数据服务器的,该控制台在 this 文章中引用的“服务器节点”选项下具有“添加服务器”选项。
现在,例如,如果我必须使用 Nodejs SDK、Ottoman 连接到驻留在服务器上的存储桶并创建一个新用户,那么它可以连接到存储桶,但无法将文档保存在桶并给我一个“分段错误(核心转储)”错误。
如果我们需要对服务器的设置方式进行任何更改,或者我们应该如何继续上面的示例以便我们能够创建用户,请告诉我们。
软件版本: 沙发底座:4.5 Couchbase Nodejs SDK:2.2 奥斯曼:1.0.3
此函数使用 Nodejs ver-4.3 从 AWS Lambda 运行。
我得到的错误是“Segmentation Fault(core dumped)”。
下面是我试过的AWS Lambda函数:
var couchbase=require('couchbase');
var ottoman=require('ottoman');
var config = require("./config");
var myCluster = new couchbase.Cluster(config.couchbase.server); // here tried connecting to either data / index / query server
ottoman.bucket = myCluster.openBucket(config.couchbase.bucket);
require('./models/users');
ottoman.ensureIndices(function(err) {
if (err) {
console.log('failed to created neccessary indices', err);
return;
}
console.log('ottoman indices are ready for use!');
});
var user = require('./models/users');
exports.handler = function(event, context) {
user.computeHash(event.password, function(err, salt, hash) {
if (err) {
context.fail('Error in hash: ' + err);
} else {
user.createAndSave("userDetails details sent to the user creation function", function (error, done) {
if (error) {
context.fail(error.toString());
}
context.succeed({
success: true,
data: done
});
});
}
});
};
当您在本地运行上述函数(使用 node-lambda)进行测试时,它会给出相同的“Segmentation fault(core dumped)”错误,而在 Lambda 上上传并测试时会出现以下错误:
{
"errorMessage": "Process exited before completing request"
}
提前致谢
【问题讨论】:
-
能否请您添加软件版本号、示例代码和错误输出?
-
@kirk 用软件版本号、示例代码和错误输出更新了问题。
标签: node.js amazon-web-services amazon-ec2 couchbase