Tag: aws lambda

npm使用AWS Lambda进行安装

我正在用Javascript编写AWS Lambda函数。 我需要使用synchronize.js库,所以我运行npm install synchronize 。 一切工作正常本地,但是当我上传* .zip到AWS并运行,它thorws以下错误: "errorMessage": "`/var/task/node_modules/fibers/bin/linux-x64-v8-3.14/fibers.node` is missing. Try reinstalling `node-fibers`?" 我认为它预计由npm安装不同的二进制文件版本。 我该如何解决?

在AWS Lambda中嘲弄

我有一个简单的AWS Node.js Lambda,我想用mocks来testing: //SimpleLambda.js var AWS = require('aws-sdk'); exports.handler = function(event, context) { var name = getName(); context.succeed(name); }; function getName() { return 'David'; } 我已经安装了mocha和simple-mock ,但我无法得到这个工作: //test.js //Mocha var assert = require('assert'); //Chai var chai = require('chai'); var expect = chai.expect; var should = chai.should(); //Simple-Mock var simple = require('simple-mock'); //Lambda var lambda = […]

AWS Lambda SDK – TooManyRequestsException

我有大约50个AWS Lambda函数,我有一个吞吐任务来部署它,脚本压缩函数并将其上传到S3,然后使用Lambda JS SDK我称这个任务来创build/更新函数: gulp.task('upload', function (callback) { var AWS = require('aws-sdk'); var lambda = Promise.promisifyAll(new AWS.Lambda(), { filter: function (name) { return name.indexOf('Async') === -1; } }); var promises = require('./lambda-config.js').lambda.map(function (lambdaConfig) { return lambda.getFunctionConfigurationAsync({ FunctionName: lambdaConfig.FunctionName }).then(function () { return lambda.updateFunctionCodeAsync({ FunctionName: lambdaConfig.FunctionName, S3Bucket: lambdaConfig.Code.S3Bucket, S3Key: lambdaConfig.Code.S3Key }); }).catch(function () { return lambda.createFunctionAsync(lambdaConfig); […]

gm aws lambda中的错误:string产生空的缓冲区

我尝试使用亚马逊lambda进行自动定位转换后上传一个缓冲区到s3。 我从一个Nodejs api发送缓冲区如下所示: var data = request.payload; if (data.file) { var Media = request.server.plugins.dogwater.media; var name = data.file.hapi.filename; var local_path = "./uploads/" + name; var file = fs.createWriteStream(local_path); console.log('adding media…') file.on('error', function(err) { console.error(err) }); data.file.pipe(file); data.file.on('end', function(err) { var pic = { gallery_id: request.params.gallery_id, type: 1 }; console.log("\n\n\ndata.file = ",data.file) Media.create(pic) .then(function(media) { httpRequest({ […]

Node.js-扫描DynamoDB AWS-添加参数

我使用Lambda AWS从dynamoDB获取数据。 我尝试添加参数,我从Android应用程序发送到Lambda的参数: if (typeof event.high_lat != "undefined") { params.ExpressionAttributeValues = event.high_lat; } 但是我得到一个错误: [InvalidParameterType: Expected params.ExpressionAttributeValues to be a map] message: 'Expected params.ExpressionAttributeValues to be a map', 任何人都知道如何解决它? 我的整个代码: var AWS = require('aws-sdk'); var db = new AWS.DynamoDB(); exports.handler = function(event, context) { var params = { TableName: "Events", //"StreamsLambdaTable", ProjectionExpression: "ID, description, endDate, […]

node.js将包含空格和嵌套string的string转换为json

我正在处理一个将AWS ELB日志推送到ElasticSearch的Lambda函数。 我从S3读取ELB日志,每个文件包含大约500行,如下所示: 2016-08-10T01:03:42.216242Z foaas 66.249.79.176:61945 172.31.45.185:80 0.000044 0.194952 0.000039 200 200 0 30 "GET http://www.foaas.com:80/you/JSON/kelly HTTP/1.1" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" – – 由于该string包含空格,分号,嵌套的string,加号等。我真的在最好的方式来将每一行转换为JSON的损失。 我尝试过使用split(),但是在给出string中所有不寻常的字符的情况下,不能让它玩得很好。 我的计划是使用AWS在这里logging的字段设置key:value对。 任何build议将是最受欢迎的。 谢谢。

在其他文件中访问Lambda上下文对象

我有一个包含多个文件的NodeJS AWS Lambda函数。 在index.js中,我执行常规exports.handler = function (event,context) {…} 。 我也有一个config.js文件,它处理各种设置和module.exportsconfiguration对象。 这个configuration文件是需要在其他几个文件,都需要访问这些设置(默认值,数据库设置等)。 我不一定需要在index.js中使用它。 不过,我需要根据Lambda函数的别名(例如使用哪个DynamoDB表后缀)在config模块中设置一些设置。 虽然在exports.handler中通过context.invokedFunctionArn (在我的例子中是PROD或STAGE)取得别名是没有问题的,但是在我的configuration文件(这是遍布全球的地方)中没有访问它的地方。 什么是最好的方式,使我的configuration模块中的上下文对象可用,我将如何做到这一点,而不会运行到循环依赖(因为它需要之前exports.handler完成)? 内部exports.handler从多个文件的所有需要​​configuration的asynchronous代码被执行。 他们都需要知道哪个别名正在运行。 问题不在于如何使用别名,而在于如何使其他文件中的上下文对象可用。 谢谢!

在S3存储桶中附加图像以使用SendGrid发送

我正在使用Xcode 7.3.1在Swift 2.2中编写一个iOS应用程序。 那么,对于我使用AWS Mobilehub ( S3和Lambda )的后端服务, 应用程序应该执行的操作:截取屏幕截图,将其发送到AWS S3存储桶,使用AWS Lambda函数触发器通过SendGrid发送屏幕截图。 我的问题:我似乎无法将S3存储桶中该死的图像附加到电子邮件。 本地它工作正常,但上传到Lambda时会引发以下错误: 错误:ENOENT:没有这样的文件或目录,打开'…' 使用下面的代码: 'use strict'; var fs = require('fs'); console.log('Loading function'); let aws = require('aws-sdk'); let s3 = new aws.S3({ apiVersion: '2006-03-01' }); exports.handler = (event, context, callback) => { // Get the object from the event and show its content type const […]

如何通过GET方法将API网关与Lambda集成

我非常困惑,试图将AWS API Gateway与AWS Lambda集成,因为我试图通过GET方法执行lambda函数,而且我的函数总是返回无效参数。 {“errorMessage”:“错误 – 无效的组ID – undefined – alexa id:undefined”} | 这是因为参数没有到达函数,而idgrupovariables<=0 。 我试图执行一个带有这个表单的URL的lambda函数: domain.execute-api.us-east-1.amazonaws.com/prod/chkneopairtoken?idgrupo=3823&clientId={321356-6666-4745}&keypair=90809276 在我的Lambda函数中,我正在这样做: var idgrupo = event.idgrupo; var alexaClientId = event.clientId; var keypair = event.keypair; if (idgrupo > 0){ } else{ console.log("Error – Invalid Group ID – " + idgrupo + " – alexa id: " + alexaClientId + " […]

NodeJS脚本发生错误后,将不会再次启动。 AWS Lambda

我在nodejs4.x运行时有一个lambda函数。 如果我的脚本由于错误而停止执行,可以说我尝试获取未定义对象的.length ,那么我不能再次启动脚本。 它甚至不像脚本运行并遇到相同的错误,脚本不运行。 lambda处理函数从来没有被第二次调用。 这个lambda函数是Amazon Alexa的端点。 当我重新上传代码(一个zip文件),然后系统再次工作。 这是nodejs的一些行为? 脚本是否正在结束文件损坏,因此无法重新启动? 当服务器遇到错误时,我会Process exited before completing request此消息 然后随后的请求达到超时限制。 重要编辑我已经指出问题NPM请求。 该模块不完成加载即。 console.log('i see this message'); var request = require('request'); console.log('this never happens');