问题标签 [aws-lambda]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - Image resize using AWS lambda in same bucket
Currently i have two buckets in S3 - let's call them buck
and buck_thumb
. Right now, when i uploads an image in to the buck
bucket, which triggers a lambda function that resizes the image into a thumbnail and uploads the thumbnail into the buck_thumb
bucket.
But now i want to make it like - when i send a image url in buck
bucket then it download the image and re size it .
Is there a way ? I can do this using only one bucket?
node.js - 使用 Node js 实现 Promise 或异步
我有大量代码从 S3 存储桶获取图像,将其保存到 Lambda 上的临时文件中,将其调整为 4 种不同的大小,根据大小将其保存到不同的文件夹中,然后将图像放回 s3 存储桶也进入不同的文件夹。
但是,在 Lambda 上运行时,我必须context.done()
在整个过程结束时调用,否则上下文将保持活动状态,直到 Lambda 超时。
所以我需要在最后一次返回context.done()
时打电话。upload
研究这两个选项,async
和promises
,这可能需要更少的代码重构才能工作?
javascript - 使用 Node.js 和 AWS Lambda 将 S3 文件的内容记录到 postgres 表
我正在 node.js 中编写一个AWS Lambda执行脚本,它响应 S3 put 事件(日志文件),读取文件并通过 COPY 命令插入 Postgres 表。似乎除了写入数据库(logToPostgres
在下面的脚本中)之外的所有内容都按预期工作。
一些注意事项:
- 我已经删除了它检查以验证它是 S3 put 事件的部分,以及其他错误处理代码,因为它在这里不相关。
- 数据库用户
INSERT
对表和数据库具有权限,ALL
并且可以从任何 IP 访问(均已验证)。 secrets.js
是导出数据库凭据的同一目录中的模块- 在本地运行脚本时,我可以很好地写入数据库。
- 我没有达到任何 AWS Lambda 的限制——从 S3 下载的文件是 521 字节,超时设置为最大 60 秒(在测试和写入同一个数据库时,它的运行时间低于 300 毫秒)。
Cloud watch 中没有错误,并且通过在每一步添加日志记录,我能够将其缩小到stream.pipe(query)...
代码的一部分。由于某种原因,这部分没有被 AWS Lambda 执行,但它在本地运行良好。它没有发出'finished'
and'end'
事件,所以我的猜测是它仍然未执行。
关于问题可能出在哪里的任何想法?
更新:
事实证明,可写流现在会发出'finish'
事件,因此将其更改为'finish'
并包含答案中的建议使其运行时不会出现错误。但是,在 lambda 运行后,数据库中仍然没有一行。我怀疑事务正在回滚,但无法查明原因或位置。我什至尝试明确开始并提交交易,但没有骰子。
php - Amazon Lambda 调用错误
我需要从 php 调用我的 Amazon Lambda 函数,但是当我拥有 AWSLambdaFullAccess 权限时,我遇到了奇怪的权限错误。我的代码:
这是错误:
有任何想法吗?谢谢
aws-lambda - 如何将客户端 JS 与 AWS lambda 同步?
我一直在阅读有关新 AWS Lambda 技术的信息,并且一直在尝试他们的一些示例。我真正想做的是在我们将新数据文件上传到 S3 时向客户提供新内容,但我不清楚是否或如何做到这一点。
我可以看到我可以在 lambda 中运行脚本来记录对 S3 的更改,但是如何将这些更改与在浏览器中运行的客户端脚本同步。那可能吗?
显然,我可以轮询存储桶对象并在它更改时显示新内容,但是当它改变 node.js 的方式时,有没有办法将数据推出?然后,当它没有变化时,我就不需要不断地击打它。
aws-lambda - AWS Lambda - 仅在 S3 存储桶根上的事件
我正在使用 Lambda 为 S3 编写一个自动图像大小调整工具。我想在执行 PUT 操作时在存储桶的子文件夹中创建缩略图,但是如果我将文件放在存储桶中的任何位置,则会触发事件。
有人可以告诉我如何仅在指定存储桶的根目录中的操作而不是在其子文件夹中的操作使事件着火吗?
amazon-web-services - 通过 http 请求调用 AWS Lambda 函数
是否可以通过 http 请求(GET 或 POST)直接调用 AWS Lambda 函数?如果没有,是否有通过 SNS 或 S3 的解决方法?因为想不出一个...
具体来说,我想使用 JSON 创建一个小 API
amazon-web-services - 如何在 AWS Lambda 中获取 Cognito 身份 ID
如何获取调用 AWS Lambda 函数的用户(由 AWS Cognito 登录)的身份 ID?我是否必须使用 Lambda 函数上的开发工具包来获取身份 ID?
node.js - 在 AWS Lambda 中使用 AWS S3 服务调用正确处理 context.succeed()/context.fail()
我已经在这里搜索过帖子(即,鉴于所有调用都是异步的,你如何在 lambda 中构建顺序 AWS 服务调用?)和其他地方,似乎找不到一点点信息可以帮助我过去这个烦人的问题。当您有一个遍历循环的 Lambda 函数,并且在该循环中调用 s3.putObject() 时,它会在尝试正确处理 context.succeed()/context.fail 时遇到短路问题() 或旧的 context.done(null, 'msg') 关闭 Lambda 进程的方式。
IE 迭代需要调用 s3.putObject() 与当前要上传的对象,但仍将成功上传的文件输出到 cloudwatch 或 SQS/SNS 。但是,我将这种类型的闭包放入函数的所有尝试都会遇到随机结果,有时会获取文件名,有时只获取一些文件名等。
最好的方法是什么?我尝试使用 Q 和 async 但老实说,我仍在学习所有这些东西..
下面是我正在尝试做的一个粗略示例:
但是,正如我之前所说,到目前为止我所做的任何尝试都会得到不同的结果。
但函数输出的另一个测试:
啊。