Tag: aws lambda

“制作”Lambda和API网关

我最近一直在教自己如何使用NodeJS + Express构buildAPI。 我仍然是一个新手,但他们在我的开发环境中出色地工作,真的很兴奋。 但是,我努力想知道怎样configuration我的服务器和代码库来进行生产。 有很多信息可以用来像Helmet那样把NGINX作为代理,但是在这个阶段,其中一些东西是超出我的。 因此,我开始将“无服务器”视为部署它们的可能选项,并将我的数据迁移到AWS RDS PostgreSQL,并设置一个采用查询参数并查询数据库的Lambda函数。 我还设法configuration了AWS API网关,该API网关需要API密钥来触发Lambda函数。 我的RDS和Lambda函数是VPC的限制,我正在使用API​​密钥和API网关默认为HTTPS。 所以我就任何build议或帮助,我现在需要考虑的其他事情,因为大多数传统的生产挑战已被删除了“无服务器”。

如何在AWS Lambda中提取特殊字符参数?

我正在通过Node.js 4.3testingAWS Lambda。 当我请求开始特殊字符参数的POST方法。 { "@type": "Test" } 然后打印日志正常工作,但Lambda无法识别“@type”参数。 exports.handler = (event, context, callback) => { console.log(event); var type = event.@type; callback(null, type); }; 我该如何解决?

AWS Lambda函数在IntentHandler调用的函数完成之前返回

我正在使用AWS Lambda开发我的第一个Alexa技能。 我所面临的挑战是Lambda函数在所有同步函数运行之前完成。 我使用下面的例子(取自这里 )函数a()调用B()(我相信这将是默认asynchronous调用)当我testing我的function有时我只得到输出'A完成'和函数返回不执行B(),C(),D() 我从我的GetUpdateIntent调用A()。 我读过几个post,build议在callback中使用context.done()来确保callback完成。 我无法遵循如何实现这一点。 我喜欢所有的callback和asynchronous调用完成lambda函数之前完成。 var A = function() { return new Promise(function(resolve, reject) { var result = 'A is done' console.log(result) resolve(result); }) } var B = function() { return new Promise(function(resolve, reject) { var result = 'B is done' setTimeout(function() { console.log(result) resolve(result); }, 2000) global_context.done(); }) } var […]

在无服务器的yml中将angular色添加为CloudFormation模板

我想从另外一个lambda调用lambda,从这个答案的例子: Nodejs – 从另一个lambda函数中调用AWS.Lambda函数 答案说,这两个lambda函数应具有AWSLambdaExecute和AWSLambdaBasicExecutionRole权限。 使用无服务器,如何将这两个angular色添加到serverless.yml中的CloudFormation模板?

AWS Lambda使用触发器创build函数

我可以从AWS SDK中创buildlambda函数: var aws = require('aws-sdk'); var lambda = new aws.Lambda(); lambda.createFunction({ FunctionName: 'name', Code: { ZipFile: 'zip content' }, Role: 'role' }).promise(); 但是我怎么能指定这个函数应该触发与S3上传?

AWS Lambda不执行node.js MySQL查询

我工作的公司正在尝试将我们现有的一些代码库迁移到AWS Lambda。 我们正在运行node.js 4.3(为lambda提供的最高版本),我们在VPC内部执行以连接到RDS数据库。 Lambda函数连接到数据库就好了,但是对MySQL表的一个简单的select查询不会执行或返回任何错误。 这里是我们正在尝试的代码: exports.handler = (event, context, callback) => { /** * Require Config file **/ var config = require('./config.js'); /** * AWS/MWS Configuration **/ var AWS = require('aws-sdk'); var MWS = require('mws'); var mws = require('./lib/mws-reports/lib/mws.js'); var XML = require('./lib/mws-reports/pixl-xml'); var mwsReportsAPI = require('./lib/mws-reports/lib/reports.js'); var mwsFeedsAPI = require('./lib/mws-reports/lib/feeds.js'); AWS.config.region = config.AWS.region; […]

如何确定哪个特定的Lambda请求触发了我的Kinesis事件?

我有一个连接到AWS Kinesis Stream(由其触发)的AWS lambda。 当我将事件发射到Kinesis时,我的lambda被调用。 下面是一些将事件推送到Kinesis的示例代码(这部分工作): var kinesis = new AWS.Kinesis({ region: 'us-east-1' }); var params = { Data: new Buffer(JSON.stringify(data)), StreamName: 'myStreamName', PartitionKey: uuid.v1() }; kinesis.putRecord(params, function(err, data) { done(); }); 当我成功创build一个logging,我得到这样的回应: { ShardId: 'shardId-000000000000', SequenceNumber: '49570419697469019326213778569044054238145932258132885506' } 我如何使用SequenceNumber来查找被触发的lambda的RequestId?

在后端应用程序中使用Webpack会降低性能吗?

我正在研究使用AWS Lambda和NodeJS的无服务器应用程序。 我正在考虑使用Webpack将我所有的NodeJS后端代码捆绑到一个JavaScript文件中,并使用像树震动一样的function。 对于我理解Node的方式, import (或require )在运行时被parsing。 我担心,将所有文件捆绑在一个文件中会影响我的应用程序的性能,因为它总是加载整个JS文件,而不是只加载JS代码执行过程中parsing的JS文件。 对于一个小应用程序,我的影响是小的,但随着我的应用程序的增长,捆绑也会。 我可以创build多个包,每个包都有一个Lambda函数,但是我的问题是:我的问题是否有效? 在单纯的NodeJS上下文中,将所有文件捆绑到单个文件中会影响我的性能,即使只是一小部分? 注意:AWS Lambda 确实支持ES5,因此仅使用Webpack进行转储并不是这里的一个因素。

MIME二进制数据转换为PDF

我从一个API调用接收一些数据,返回一些XML和相关文件(PDF): var req = http.request(HTTPOPTIONS, function(resp){ var rawData = ''; //Build list from response data resp.on('data', function (chunk) { rawData+= chunk; }); //Process List resp.on('end', function () { var breakStr = rawData.split('\n')[0]; var fileSections = rawData.split(breakStr); for(var i in fileSections){ var content = fileSections[i].split((/Content-Length: [0-9]*/)); var fileName = content[0].split('filename=')[1].trim(); var file = {Bucket : 'MyBucket', […]

用ClaudiaJS和AWS Lambda发送POST HTTP

我在Facebook Messenger中build立一个推送通知服务。 我的nodejs应用程序在我的本地主机上正常工作,但不在AWS中。 我使用请求模块(npm)发送消息。 我的服务可以获取参数,但不发送HTTP POST。 var ApiBuilder = require('claudia-api-builder'), api = new ApiBuilder(); var request = require('request') api.get('hello', function (req) { var token = req.queryString.token; var sender = req.queryString.sender; var msg = req.queryString.msg; messageData = {}; messageData.text = msg; request({ url: 'https://graph.facebook.com/v2.6/me/messages', qs: { access_token: token }, method: 'POST', json: { recipient: { id: […]