Tag: aws lambda

使用python / node.js获取当前的AWS安全组限制

大家好! 希望你们一切都好。 在达到AWS服务限制时,我有一个lambda函数提醒团队,其中一个场景就是我需要获取当前的安全组限制(当然默认情况下,它是500,但是可能随着限制扩展而改变。),并将其与当前使用情况进行比较,如果它在任何地方接近极限,则应该提醒。 我现在能够得到警报。 但是,每次扩展安全组限制时,我都需要更新lambda函数,这是因为我之前使用了硬编码,而且我想通过自动获取限制来避免。 有人可以帮我解决这个问题吗? 提前致谢!!

在lambda中创buildpkg文件

我对AWS S3和Lambda相当陌生。 使用带有Lambda的nodejs 4.3可以从S3存储桶中提取多个文件并将它们编译成单个osx扁平包(.pkg)?

即使使用500响应,使用h​​ttp.request的AWS Lambda方法也不会遇到错误事件

TLDR:如何在Lambda中logginghttp 500错误? 我正在尝试从我的内部API方法(不能直接访问SNS订阅)logging错误,并在CloudWatch中的Lambda中调用。 这是我在nodejs 6.10中的Lambda方法: var http = require('http'); exports.handler = function(event, context, callback) { var post_data = event.Records[0].Sns.Message; var post_options = { host: 'myhost.com', port: 80, path: '/path/to/api/', method: 'POST', headers: { 'Content-Type': 'application/json', 'Content-Length': post_data.length } }; var post_request = http.request(post_options, function(res) { var body = ''; res.on('data', function(chunk) { body += chunk; […]

用于VS Node.js中的AWS Lambdafunction的锐利图像库

我正在使用Visual Studio中的AWS Lambda函数来调用快速图像大小。 最初,我使用ImageMagick来调整这些图像的大小,但整个过程需要很长的时间来处理。 ImageMagick的替代scheme似乎是另一个图像库Sharp。 Sharp应该会使用Native AWS Lambda代码来更快地调整图像大小。 根据这篇文章,夏普需要在EC2实例中构build( https://github.com/awslabs/serverless-image-resizing )。 我还没有能够得到这个工作呢。 有没有人有这个工作呢? 如果是这样的话,那么在EC2中是否有一个预build的Sharp库,或者我应该自己构build它? 我确实在npmfind了一个Sharp库,但是我无法使它正常工作。 npm中的Sharp库甚至与AWS Lambda函数兼容吗? 如果是这样,是否通过使用本地处理增加了速度?

从AWS Lambda Node.JSstream式传输到S3

我的目标是创build一个大的gzip文本文件,并将其放入S3。 文件内容由我从另一个源代码循环读取的块组成。 由于这个文件的大小,我不能保存所有的数据在内存中,所以我需要以某种方式直接stream到S3和ZIP在同一时间。 我知道如何使用Node.JS中的常规fs执行这个技巧,但是我很困惑是否可以使用AWS Lambda中的S3来完成相同的技巧? 我知道s3.putObject 可以使用 streamObject ,但是在我看来,当我执行putObject操作时,这个stream应该已经完成​​,什么会导致超出允许的内存。

Alexa的SDK请求提示

我有一个场景,客户询问Alexa是什么,我的旅行计划是映射到“TravelIntent”。 这个意图从REST API获取客户旅行详细信息,发现客户有超过1个旅行计划。 现在我正在提示用户,我可以看到有超过1个计划。 假设1为周末旅行,说2等等等等。现在当用户回应说2 Alexa可以提出你的旅行为下周的德里等用户..现在问题是我必须查询restapi的细节,还是有什么办法,我可以在Alexa会话中坚持数据,以及它如何使用用户的“询问”响应,因为已经“TravelIntent”已经收到来自其他api的数据。

为什么AWS Lambda中的Node.js占用这么多内存?

我正在使用TesseractJS在AWS Lambda中运行OCR处理function。 我不得不将lambda函数的内存增加到最大(1536 MB),因为内存问题它不会崩溃。 即便如此,这个过程几乎达到了最高限度: Duration: 54133.61 ms Billed Duration: 54200 ms Memory Size: 1536 MB Max Memory Used: 1220 MB 奇怪的事情,以及我发布这个问题的原因是为什么这是如此的记忆? 如果我在只有512MB内存的开发环境中运行这个相同的进程,它仍然可以完成而没有任何问题。 我用于这些testing的图像大概只有大约350KB。 这是我的代码片段: Tesseract.recognize(img) .catch(err => reject(err)) .then(function(result) { Tesseract.terminate(); console.log(result); })); }); 这里是我的代码更完整的版本: lambda.js: exports.handler = function(event, context, callback) { let snsMessage = getSNSMessageObject( JSON.stringify(event.Records[0].Sns.Message)); let bucket = snsMessage.Records[0].s3.bucket.name; let key = […]

对于isBase64Encoded,AWS Gzip压缩在java中不起作用

我一直在研究Gzip的响应,但是它的工作在nodejs中很好,但是相同的代码在java平台中不起作用。 经过深入挖掘,我发现key是Base64Encoded:true在客户端(Chrome浏览器专门)中没有正确识别, public class ExampleHandler1 implements RequestHandler<AwsProxyRequest,AwsProxyResponse> { @Override public AwsProxyResponse handleRequest(AwsProxyRequest input, Context context) { AwsProxyResponse response = new AwsProxyResponse(200, Collections.singletonMap("X-Powered-By", "AWS Lambda & serverless"), "Aaytu"); try { HashMap<String, String> headermap = new HashMap<>(); headermap.put("Content-Encoding", "gzip"); headermap.put("Content-Type", "text/html"); String responseString = Base64.getMimeEncoder().encodeToString(GzipCompressor.compress("Hello there..!!!").getBytes()); AwsProxyResponse retVal = new AwsProxyResponse(200, headermap, responseString); retVal.setBase64Encoded(true); return retVal; } […]

如何将requestId和调用者移动到HTTP标头?

我们正在尝试encryption我们的有效载荷并移动任何不应该encryption的东西。 到目前为止,这些是我们确定不encryption的属性。 – event.requestContext.requestId – event.requestContext.requestId.identity.caller 那么,如何将这些项目移动到HTTP头?

错误callback没有用于链接然后()与ssh2-sftp客户端在node.js lambda

我对节点和lambda非常新,所以我可能会犯一些愚蠢的错误。 我创build了一个node.js aws lambda函数,它从s3事件中获取一个文件。 如果文件是gzip解压缩,则将其上传到sftp服务器,然后创build并上传一个sig文件到同一个sftp服务器。 它在一切顺利的时候起作用,但似乎并没有正确地触发错误。 sftp命令被连接在一起,所以我希望任何错误都会导致后续的失败。 例如,如果我closures了我的sftp服务器,sftp客户端将会产生一个超时错误,但是lambda永远不会看到callback错误,只会成功。 日志确实向控制台显示错误输出,但是在跟随其余的.then()项目之后,似乎使用成功callback。 连接是否被正确logging为承诺? 示例日志: … Starting SFTP Connected to sftp, starting sftp put for lastsub2.dat file. { Error: Timed out while waiting for handshake at Timeout._onTimeout (/var/task/node_modules/ssh2/lib/client.js:687:19) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5) level: 'client-timeout' } 'Error occured during sftp relay.' END 示例代码: console.log('Loading function'); […]