Tag: lambda

Lambda函数不会发布到SNS或更新dynamodb

我正在尝试更新dynamodb并使用以下代码从Lambda函数发送SNS通知。 即使function成功执行SNS通知也不会发生。 SNS日志也不显示任何条目。 从控制台的SNS到相同的ARN的作品。 检查更新不起作用的dynamodb。 Dynamodb和SNS发布所需的IAMangular色策略已创build。 任何指针或debugging的方式将有所帮助。 'use strict'; console.log('Loading function'); var AWS = require("aws-sdk"); var sns = new AWS.SNS(); AWS.config.update({ region: "us-east-1" }); var docClient = new AWS.DynamoDB.DocumentClient(); exports.handler = (event, context, callback) => { context.callbackWaitsForEmptyEventLoop = false; console.log('Received event: ', JSON.stringify(event, null, 2)); console.log('Received context: ', JSON.stringify(context, null, 2)); // console.log('Cognito id: ', […]

使用Cloudformation来部署Lamba,包括函数将有权访问的参数

我们有一个API用于使用Cloud Formation在AWS中提供某些资源。 这包括一个将事件发送到S3的Lambda函数,并且可以configuration该存储桶。 事情是,当我们提供lambda时,我们会知道bucket名称,而不是lambda代码本身。 据我所知,在configuration时无法在Cloud Formation模板本身中注入S3存储桶名称。 真的吗? 我可以看到的唯一解决scheme是即时生成function代码,并将其embedded到Cloud Formation模板中。 这将使我们无法使用任何NPM依赖关系以及function代码。 有更好的select吗?

AWS DynamoDb查询表

我想在一个新的项目上使用Dynamodb,我不得不说我非常困惑。 所以我已经设置了一个叫做ID的散列键的新表,我将它设置为一个时间戳,因为它需要是唯一的。 然后,我使用Lambda插入我的数据 var tableName = "TrackerTable"; var datetime = new Date().getTime().toString(); var putData = { "TableName": tableName, "Item": { "ID" : { "N": datetime }, "TrackIt": { "S": event.trackit }, "Latitude": { "N": event.lat }, "Longitude": { "N": event.lon }, "Time": { "N": datetime } } } dynamoDB.putItem(putData, function(err, data) { if (err) { […]

alexa技能web服务调用不会发生

我正在尝试历史虚张声势的例子来调用维基百科服务。 我把电话放在开始信息上。 我可以看到它正在打印我的消息,直到它击中呼叫站点。 但是然后在控制台中不打印任何东西。 代码如下所示: var https = require('https'); var urlPrefix = 'https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&explaintext=&exsectionformat=plain&redirects=&titles='; HowTo.prototype.eventHandlers.onLaunch = function (launchRequest, session, response) { console.log("vik::::::::::::: before service call "); var speechText = "Welcome to the your assistant? … what can I help you with."; var repromptText = "For instructions on what you can say, say help me."; response.ask(speechText, repromptText); […]

使用AWS Lambda和API网关来提供静态JavaScript?

我正在写一个第三方小部件,执行JavaScript客户端端添加一个button到用户的网站。 从本质上讲,用户将在他们的网站上包含一个标签,其中包含我的小部件的path。 该path的URL将包含调用该窗口小部件的特定用户的app_id。 例如 <script src="www.widget.com/widget/{USER_ID}"> 我希望能够使用AWS Lambda和API Gateway进行一些快速authentication,允许用户下载该小部件并提供javascript内容。 这在Express.js中很像res.sendFile,但API Gateway似乎不支持发送文件。 有没有什么方法可以使用API​​网关快速提供JavaScript,而不必将整个文件串联起来?

如何通过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 + " […]

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 […]

最快的方式来处理Postgres表中的所有数据?

我有一个NodeJS应用程序需要从RDS Postgresstream数据,执行一些相对昂贵的CPU操作数据,并将其插入到另一个数据库。 CPU密集型部分已经卸载到AWS Lambda中,Node应用程序将获得一批行并立即将它们传递给Lambda进行处理。 瓶颈似乎是从Postgres接收数据的速度。 为了利用多个连接到数据库,我有一个algorithm,有效地跳过sorting的ID,以便可以保持许多并发连接。 例如:1连接获取标识符1-100,第二个获取标识符101-200等,然后当第一个返回也许它获取ids 1001-1100。 这是相对标准的做法吗? 有没有更快的方法拉出数据进行处理? 只要我低于数据库的max_connections,添加更多,可能作为额外的并发应用程序stream出数据是否可以说是有益的? 应用程序和RDS目前都在VPC中,RDS的CPU利用率约为30%,内存为60%。

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; […]

AmazonWebService – 我应该使用AWS API网关还是AWS SDK

我试图从NodeJS调用一个lambda函数。 经过研究,我知道两种方法来做到这一点: 将Lambda函数分配到AWS API网关并调用该API。 通过AWS SDK调用Lambda函数 API网关和AWS SDK的优缺点是什么? 何时使用上面的每个方法?