Articles of lambda

错误:使用AWS Lambda上的gm降低图片质量时,stream会产生空缓冲区

我已阅读所有其他主题,并尝试了一些答案,但我似乎无法弄清楚为什么我得到这个错误。 我的代码在S3存储桶中获取上传的图片,降低质量并将其放入第二个存储桶中。 干净利落。 随着中小型图像一切正常,但如果我上传的东西超过2 MB(或多或less)我得到的错误标题。 我的Lambda函数有128MB和3分钟的超时时间; 这里是代码: const gm = require('gm').subClass({imageMagick: true}); const AWS = require('aws-sdk'); const async = require('async'); const S3 = new AWS.S3(); exports.handler = (event, context, callback) => { var srcBucket = event.Records[0].s3.bucket.name; var srcKey = event.Records[0].s3.object.key; var dstBucket = "destinationbucket"; var dstKey = "resized-" + srcKey; // Infer the image type. […]

节点Mongo连接错误:连接4到xxx集群closures

我正在使用AWS Lambda – Nodejs开发应用程序,并使用Mongodb作为后端。 为了连接Mongodb,我使用了nodejs本地库mongodb 。 问题是,随机,Mongodb抛出错误“连接4到群集closures”。 我在Google上find了一些答案,但没有解决。 像一些要求添加keepalive等。如所build议的那样,当使用AWS Lambda时,保存数据库连接,我坚持这些准则。 这是连接到Mongodb的函数的片段。 var connectToDatabase = function(_callback){ var options ={ server: { socketOptions: {keepAlive: 1} }, poolSize:100, replset: { rs_name: 'voila-cluster-shard-0', socketOptions: {keepAlive: 1} } } MongoClient.connect(url,options,function(error,connection){ if(error){ console.log(error) _callback(error) } else{ client = connection _callback(null,client); } }) } 有人可以帮我在这里。

dynamic网站使用AWS

我想要使​​用AWS无服务器托pipe一个dynamic网站。 我打算使用Lambda,API网关,DynamoDB和S3。 我的前端页面将驻留在S3中。 拦截器是会有一些dynamic的项目,如用户名和其他元数据将是用户特定的。 我知道到目前为止,我们能做的最好的事情就是从S3中拉出html页面。 那么我如何继续并在这些页面中包含这些variables? 我将在NodeJS中编写lambda。

AWS分页listObjects node.js

您好,我目前希望列表中的图像使用分页的商店。 我需要每次显示指定数量的图像,并允许循环停止在我指定的页码上。 (例如,每页30个图像,我需要第3页,我将需要列出图像的第3页)。 到目前为止,它遍历所有的文件,我只需要根据pageCount列出objectsPerPage (GET / list / {storeid}?page = {pageNumber}&per_page = {perPage} var shopId = event.shopkeeper + "/"; var objectsPerPage = event.perPage; var pageCount = event.pageNumber; var params = { Bucket: AWS_Bucket, Delimiter: '/', Prefix: shopId, MaxKeys: objectsPerPage }; var dataContents = []; function s3ListObjects() { s3.listObjects(params, function(err, data) { if (err) { console.log("listS3Objects […]

如何创build一个使用Express.js创build一个REST风格的API与亚马逊Api Getaway和lambda

我一直在尝试使用亚马逊Getaway和Lambda服务来构buildNode.js / Express.js api。 到目前为止,我能够使用这个框架,平台组合,我需要知道的GET Web服务公开,我应该创build一个新的文件/代码zip捆绑每个服务,我要公开使用亚马逊API Getaway? 这个问题的原因是,我创build了一个包含所有path和方法的Express.js路由: route.get('/', function(res, req){ …. }) route.get('/:id', function(res, req){ …. }) route.get('/user/', function(res, req){ …. }) 使用Amazon Api Getaway我为每个lambda函数创build一个资源和一个方法,但是当我尝试向它发送path时,我得到的结果与Express.js应用程序只有1个可用path相同。 谢谢!

node.js lambda函数将logging从sql迁移到elasticsearch,使用队列限制asynchronous调用

我试图在node.js中实现下一个function:我必须从sql到1.200.000logging迁移到elasticsearch,我分成5万批次,一旦我解决了5分钟超时问题,我痛苦了这一点内存问题的aws lambda。 我发现这个async.queue限制在Node.js中的asynchronous调用,但我一定是做错了,因为它不能按预期工作。 我究竟做错了什么? 我怎样才能限制asynchronous调用importSQLData方法? 谢谢。 这是我的代码: exports.importData = function(batchNum,topNum,startNum){ var q = async.queue(function (task, callback) { console.log('hello ' + task.name); callback(); }, 2); q.drain = function () { console.log('all items have been processed'); } for (var y = 1; y <= batchNum; y++) { q.push(importSQLData(topNum, startNum), callback); // I don't know if this is […]

HTTP请求问题内部服务器错误

我有一个HTTP响应问题给我一个状态代码:502,并出现错误消息:内部服务器错误。 我的设置是用NodeJS编写的AWS Lambda,向与其他Lambda集成的AWS API网关发出HTTPS POST请求作为其后端。 奇怪的部分是作为API后端的Lambda收到所有的POST请求,并且能够完美地执行它的function,但是它的callback响应了另一个Lambda错误。 以下是API网关端的lambdacallback const done = (err, res) => callback(err, { statusCode: err ? JSON.stringify(err.code) : '200', body: err ? JSON.stringify(err.message) : JSON.stringify(res), headers: { 'Content-Type': 'application/json', } }); 这里是其他lambda发出https POST请求的代码 const req = https.request(options, (res) => { console.log('statusCode:', res.statusCode); console.log('headers:', res.headers); res.on('data', (d) => { process.stdout.write(d); }); res.on('end', function () […]

webpack&aws lambda

我正在尝试使用Weback来构build一个简单的lambda nodejs函数hello world。 exports.handler = (event, context, callback) => { callback(null, 'Hello from Lambda'); }; 该函数在lambdaexpression式中工作,处理器“index.handler”在aws lambdaconfiguration页面中configuration。 上面的Webpack生成的代码不起作用。 该函数在模块“index”上抛出错误“Handler'handler'”。 它看起来像模块成为反义词。 可以通过如下更新生成的代码来工作。 global.handler = (event, context, callback) => { //async.map(['file1','file2','file3'], console.log, function(err, results){ // results is now an array of stats for each file callback(null, 'Hello from Lambda'); //}); //add the following at the end. exports.handler […]

在lambda中创buildpkg文件

我对AWS S3和Lambda相当陌生。 使用带有Lambda的nodejs 4.3可以从S3存储桶中提取多个文件并将它们编译成单个osx扁平包(.pkg)?

在NodeJS上调用AWS Lambda上的R脚本

由于几个小时的无果search,我发布这个问题。 我想这是一个重复的这一个: 你如何运行AWS Lambda与NodeJS RServe? 但是,由于这个问题的作者似乎没有成功完成他的目标,我将再次尝试。 我目前有什么: 一个NodeJS服务器,通过Rserve调用一个R脚本,并通过node-rio传递数据进行评估。 负责的function如下所示: const R = (arg1, arg2) => { return new Promise((resolve, reject)=>{ const args = { arg1, arg2 }; //send data to Rserve to evaluate rio.$e({ filename: path.resolve('./r-scripts/street.R'), entrypoint: 'run', data: args, }) .then((data)=>{ resolve(JSON.parse(data)); }) .catch((err)=>{ reject(`err: ${err}`); }); }); }; 这工作得很好。 我正在将数据发送到我的R实例,并将结果返回到我的服务器。 我最终想要实现的是: 每个请求似乎都产生了自己的R工作空间,这个空间有相当大的内存开销。 因此,使用这种方法即使服务数百个并发请求也是不可能的,因为我的AWS […]