Tag: aws lambda

承诺或asynchronous与节点js

我有大量的代码从S3存储桶中获取图像,将其保存到Lambda上的临时文件中,将其大小调整为4种不同的大小,并根据大小将其保存到不同的文件夹中,然后将图像存回s3存储桶也进入不同的文件夹。 但是,在Lambda上运行时,必须在整个过程结束时调用context.done() ,否则上下文将保持活动状态,直到Lambda超时。 所以我需要在最后一次upload返回时调用context.done() 。 看看这两个选项, async和promises ,这可能需要更less的重构我的代码工作? // dependencies var AWS = require('aws-sdk'); var gm = require('gm').subClass({ imageMagick: true }); var fs = require("fs"); // get reference to S3 client var s3 = new AWS.S3(); var _800px = { width: 800, destinationPath: "large" }; var _500px = { width: 500, destinationPath: "medium" }; var […]

AWS Lambda:我是否可以返回上下文并让任务仍在运行?

现在我在生产中有一个lambda函数来处理日志string,然后将它们返回给客户端,所以: 1) string received by lambda 2) lambda transforms string 3) lambda returns via context.succeed the transformed string 现在我添加一个额外的步骤,将string保存在dynamodb表中,所以工作stream将是: 1) string received by lambda 2) lambda transforms string 3) lambda saves string to dynamo 4) lambda returns via context.succeed the transformed string 现在的位保存function是这样的: function _saveItem (item) { dynamo.putItem(item, function (err, data) { //error handling here […]

Amazon Web Services:从Lambda函数删除DynamoDB数据库上的项目

如何从Lambda函数中删除DynamoDB数据库中的项目。 我知道如何投入和项目。 这是工作代码: dynamo.putItem({ "TableName": "Table", "Item": item }, function(err, data) { if (err) { console.log("Failure: " + err); context.succeed("Failure!"); context.done(); } else { console.log("Success!"); context.succeed("Success!"); context.done(); } });

aws lambda可以调用matlab函数吗?

我想调用matlab函数来询问Alexa – Amazon的回声。 amazon回声的代码是在nodejs中,我不知道如何从aws lambda函数调用matlab函数。

如何访问AWS API网关的path参数?

我在API网关中创build了一个基本的GET url; 用名为“name”的path参数。 我怎样才能访问这个名字参数? 我没有看到它在任何事件或背景下。 我错误的参数path的目的? 让我用我的游戏应用程序为例: GET /api/v1/person @controllers.PersonController.list(limit: Int ?= 50, offset: Long ?= 0) GET /api/v1/person/$id<[0-9]+> @controllers.PersonController.getById(id: Long) GET /api/v1/person/$id<[0-9]+>/email @controllers.PersonController.getEmailByPersonId(id: Long) 这是使用AWS API网关实现的吗?

AWS Lambda是否使用弹性IP?

首先我的问题是:使用EIP的AWS Lambda“实例”? 我的背景: 我使用lambda作为解决scheme,以减less我的应用程序负载的某些任务(下载youtubevideo)。 在过去,我在ec2实例中遇到了一些问题,我在EIP中使用它们,总是返回限制超出的消息,并提示validation人validation。 我当时通过使用没有EIP的实例解决了这个问题,并像魅力一样工作。 现在使用lambda的某些video,它会引发我错误:代码150:上传器尚未在您的国家提供这个video。 我仔细检查了video没有被美国阻挡,事实并非如此。 所以我决定回去用一个EIP实例进行testing,就是这样,和我在lambda函数中返回的信息一样。 这似乎是从YouTube的变化,因为大约3-4个月前使用EIP时的错误是极限超过,但现在它转向国家封锁的问题。 所以就像lambda使用EIP或类似的服务,youtube似乎不喜欢。 PS:我正在用nodejs运行我的lambda函数,并用ytdl-core btw下载video。 PS2:我在一个论坛上问了这个问题,但是一个星期左右没有运气。 所以我决定尝试在这里问。 提前致谢

AWS简单Crud操作

我是AWS新手。 为了最初的理解,我需要..从Angularjs(我知道) – > api网关(我知道) – > lambda(node.js) – > dynamodb全stream。 我正在寻找简单的CRUD操作示例。 我知道如何在Angular,APIGateway中编写代码,但是为了编写可以在dynamodb表上执行CRUD操作的代码而与Lambda(Node.js)争执不休。 任何人都可以在node.js中提供包含示例代码的链接或示例项目。 (我GOOGLE了很多,但无法find直接的样本)我也跟随aws文件网站。 但我觉得它稍微复杂或我愚蠢:)) 提前致谢。

将string附加到AWS Lambda中的文本文件Nodejs

场景:文本文件snapshot-ids.txt位于S3存储桶中。 我正在尝试创build一个每日运行的Lambda函数(Cron),它将使用AWS CLI获取卷的快照,然后将该snapshotId保存到S3中的文本文件中。 在下一次创build另一个快照时,新的snapshotId将被保存到S3上的同一文本文件中。 文本文件是snapshotIds的占位符,当达到阈值时,它将删除顶部的snapshotIds并在末尾添加新的(FIFOpipe道)。 对于不使用AWS lambda的人来说,我的问题是将文本追加到variables的最快方法是什么,并用新行返回新variables。 对于了解Lambda的人,这是AWS Lambda的基本代码,我使用fs.appendFile,但是如何使用从s3.getObject()获得的文件并最终将其传递给s3.putObject()? 编辑:这是我的进步: console.log('Loading function'); var aws = require('aws-sdk'); var s3 = new aws.S3({ apiVersion: '2006-03-01' }); var fs = require('fs'); exports.handler = function(event, context) { //console.log('Received event:', JSON.stringify(event, null, 2)); // Get the object from the event and show its content type var bucket = event.Records[0].s3.bucket.name; var […]

使用lambda函数将数据库抓取为JSON

我正在使用dynamo-db扫描来获取这个JSON格式的数据库表,但它似乎不工作 var doc = require('dynamodb-doc'); var dynamo = new doc.DynamoDB(); exports.handler = function(event, context) { dynamo.scan({ 'TableName' : 'DATABASE_NAME' }, function(err, data) { console.log('this doesnt print'); if (err) console.log(err, err.stack) else console.log(data); }); context.succeed('ding'); 我不相信它正在进入callback函数,因为“这不打印”不打印。 有任何想法吗? 谢谢 :)

输出来自单个意图的多个响应

我有一个Alexa的技能,我想有一个意图的初步反应,然后在一个延迟,陈述另一个回应。 我试图使用多个response.tell(…)调用与他们之间的setTimeout() ,但这只会响应第一个.tell()并结束。 ( .tell()被设置为结束会话,但即使我将其设置为false ,我的代码仍然不会达到setTimeout() ) 我已经包含了一些关于我想要做什么的伪代码: intentHandlers.DynamicDurationIntent = function(intent, session, response) { var calculatedDuration = doCalculation(); var speechDuration = convertToSpeech(calculatedDuration); var speechOutput = "Your duration will last <say-as interpret-as="time">' + speechDuration + '</say-as>"; response.tell(speechOutput); //I get this far setTimeout(function () { var speechOutputEnd = "Great job! You're done."; response.tell(speechOutputEnd); }, calculatedDuration); } 这个模型的一个例子是在7分钟锻炼Alexa技巧中使用的。 […]