Tag: lambda

AWS Lambda和APN

我们决定使用AWS Lambda来处理需要在高峰期间快速扩展的消息(短信,电子邮件和推送),之前我们使用SQS和eb工作应用程序,但发现消息时间在高峰时段严重延迟。 苹果最近从使用p12证书变成了一个新的不过期的p8密钥系统。 这在这里解释得非常好。 问题是大多数libs / gems / packages还不支持新的Apple p8格式。 另一个问题是,AWS Lambda仅支持特定版本的节点/ python等Python 2.7.12和Node 4.3 我能find的唯一支持Apple p8格式的节点模块是node-apns 我无法得到这个工作,似乎有旧节点版本的一些问题,因此它不适用于Lambda 我能find的唯一支持p8格式的Python库就是这样 这个暂时工作,但在一个小的变化后的某个时刻停止工作,因为基本上没有例外,所以不可能debugging,因此我们不得不放弃它。 最后,我们不得不恢复使用这个 Python的lib的APNS使用旧的p12格式。 所以我的问题是 在AWS Lambda上使用新的p8格式发送Apple推送的最佳包(以任何语言)是什么? 有没有更好的方法(非AWS Lambda)发送处理stream量大量峰值的消息。 非常感谢的想法。

将缓冲区对象发回给Axios会导致错误

我创build了一个lambda函数在S3中添加的每个对象上执行。 我需要将每个文件转发到另一台服务器。 从S3中检索到的对象types是: { AcceptRanges: 'bytes', LastModified: 2017-05-29T18:29:47.000Z, ContentLength: 22502, ETag: '"9eff66fa38994b09e8f2072a79044734"', ContentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', Metadata: {}, Body: <Buffer 50 4b 03 04 14 00 06 00 08 00 00 00 21 00 71 d0 15 40 bc 01 00 00 de 09 00 00 13 00 08 02 5b 43 6f 6e 74 65 6e […]

使用AWS Lammbda查询数据库,并将结果推送到Geckoboard

我正在尝试设置AWS Lambda函数来查询MySQL数据库并将结果上传到Geckoboard进行分析。 但是,它会一直超时。 这是我的代码: 'use strict'; var API_KEY = [API KEY]; var gb = require('geckoboard')(API_KEY); var AWS = require('aws-sdk'); var mysql = require('mysql'); var connection = mysql.createConnection({ [DATABASE DETAILS] }); var mysqlQuery = ' SELECT DATE(created_at) as date, COUNT(DATE(created_at)) as number_of_entries FROM table WHERE updated_at IS NOT NULL GROUP BY date '; var schema = […]

重用NodeJS Lambda函数的Redis连接

我写了下面的Lambda函数: exports.handler = (event, context, callback) => { const redis = require('redis'); const redis_client = redis.createClient({ host: 'hostname', port: 6379 }); redis_client.set("foo", "bar"); redis_client.get("foo", function(err, reply) { redis_client.quit(); callback(null, reply); }); }; 这工作正常。 但是,我想重用Lambda调用之间的Redis连接来提高性能。 理论上这可以通过将createClient()移到处理程序的外部来实现。 但是,由于“redis_client.quit()”行,该连接被终止。 如果我不退出客户端,则Lambda函数将超时。 使用AWS Lambda时,在NodeJS中重用Redis的正确方法是什么?

AWS Lambda中的PhantomJS(缺lesslibfontconfig)

我试图让我的lambda函数使用phantomjs,但它一直运行到一个缺less的依赖关系的错误:libfontconfig / fontconfig。 在我的Centos VPS上安装fontconfig(dnf install fontconfig -y)时,我的代码工作正常。 然而,在lambda上运行时,我无法弄清楚如何让这个库运行我的function。 这是我的代码:(试图通过使用phantomjs的AliExpress软件包获得最畅销的产品) const aliExpress = require('aliexpress'); exports.handler = (event, context, callback) => { console.log('Handler ran!'); aliExpress.BestSelling.get().then((goods) => { console.log('Found results!'); const urls = []; for(let index in goods) { const url = goods[index].url; urls.push(url); } console.log('Returning URLs:'); console.log(urls); callback(null, urls); }).catch((err) => { console.log('Error:'); console.log(err); callback(err); }); […]

AWS Lambda无法调用Cognito Identity – IAM Role

我已经得到了一点在我的本地机器上运行的JavaScript,但是在Lambda中不起作用。 它在调用cognitoidentity.getOpenIdTokenForDeveloperIdentity时超时 { "errorMessage": "2016-03-17T16:50:25.181Z 4fa3fa5a-ec60-11e5-8316-415fa39313da Task timed out after 15.00 seconds" } 在本地工作正常(调用AWS生产服务),所以它必须是我已经附加到Lambda的策略。 以下是我的政策: AmazonCognitoDeveloperAuthenticatedIdentities AWSLambdaVPCAccessExecutionRole 这也是我的习惯之一: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:eu-west-1:myaccountid:function:users_login" ] } ] } Lambda ARN直接从Lambda屏幕上复制。 任何想法缺less什么?

AWS lambda函数 – “发生错误:收到来自Lambda:Handled的错误响应”

使用AWS Lex创buildChatBot并在AWS Lambda使用Node.js。 错误:发生错误:收到来自Lambda:Handled的错误响应 Lambdafunction: var aws = require('aws-sdk'); var ses = new aws.SES({region: 'us-east-1'}); exports.handler = function(event, context, callback) { var eParams = { Destination: { ToAddresses: [event.currentIntent.slots.Email] }, Message: { Body: { Text: { Data: "Hi, How are you?" } }, Subject: { Data: "Title" } }, Source: "abc@gmail.com" }; var email = […]

在AWS Zip中捆绑Node.js依赖

我使用Node.js创build一个lambda函数,而我正在寻找将依赖关系捆绑到我的zip中以用于AWS中的Lambda函数。 特别是我使用ffmpeg库,我已经得到它在本地使用npm运行 。 有没有办法,我可以绑定这个依赖关系与我上传的.zip文件,所以我不必在AWS中configuration依赖关系?

关于在AWS NodeJS上使用TypeScript (获取TS的堆栈跟踪而不是JS)

我正在考虑将我当前的js代码库转换为在NodeJS中使用TypeScript。 有一点我关心的是,如果请求发生错误,我可以在AWS CloudWatch(请求日志)中看到堆栈跟踪,以了解导致问题的确切代码行。 如果我使用打字稿,我想日志仍然可以指向我从转录js文件的崩溃行。 但我想知道是否有可能给我的ts文件,而不是我自己的ts文件,而不是js文件。 谢谢

节点JScallback与Alexa技能

我有一个模块,其中包括一个请求调用,似乎没有得到执行。 var request = require('request'); var Alexa = require('alexa-sdk'); var APP_ID = <my alexa app ID>; var self = module.exports = { handler : function (event, context, callback) { var alexa = Alexa.handler(event, context); alexa.appId = APP_ID; alexa.registerHandlers(self); alexa.execute(); }, "TestIntent": function () { var speechOutput = "Recorded Test"; request("http://www.google.com", function(error, response,body) { return console.log(body); […]