小编bir*_*aum的帖子

AWS Lambda不与gm模块一起使用

当图像放入s3存储桶时,我正在使用AWS Lambdas3存储桶中的图像调整为使用节点js的不同大小的变体.

它一直工作到昨天.今天当我使用相同的lambda函数时,我收到以下错误:

{
"errorMessage": "Command failed: identify: not authorized `//bucketname.s3.amazonaws.com/imagename.jpg' @ error/constitute.c/ReadImage/454.\n",
"errorType": "Error",
"stackTrace": [
    "",
    "ChildProcess.proc.on.onExit (/var/task/node_modules/gm/lib/command.js:297:17)",
    "emitTwo (events.js:87:13)",
    "ChildProcess.emit (events.js:172:7)",
    "maybeClose (internal/child_process.js:821:16)",
    "Socket.<anonymous> (internal/child_process.js:319:11)",
    "emitOne (events.js:77:13)",
    "Socket.emit (events.js:169:7)",
    "Pipe._onclose (net.js:469:12)"
    ]
}
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么会出现这种现象.我下面的lambda函数的所有给定函数都在异步瀑布中,首先计算宽高比,然后将图像转换为不同的大小变体.

var request=require("request");

function getTheAspectRatio(callback) {
    gm(s3Url) // I am constructing the image url in the AWS Lambda Function.
        .size(function(err, size) {
            if (!err) {
                //Calculate the Aspect ratio
            } else if (err) {
                //Give Back …
Run Code Online (Sandbox Code Playgroud)

imagemagick amazon-s3 amazon-web-services aws-lambda gm

9
推荐指数
1
解决办法
3575
查看次数

在 Javascript 中解构赋值的好处

我越来越多地遇到使用 ES2015 引入的解构赋值的代码,甚至更多时候我发现很难理解作者在做什么。我可以看到解构在某些情况下非常有用,但我的印象是它经常引入不必要的代码复杂性。

例如,MDN 上的嵌套对象和数组解构示例使用这一行来解构嵌套数组:

var { title: englishTitle, translations: [{ title: localeTitle }] } = metadata;
Run Code Online (Sandbox Code Playgroud)

与这样的东西相比,它的优势在哪里,对我来说看起来更具可读性:

var englishTitle = metadata.title,
    localeTitle  = metadata.translations[0].title;
Run Code Online (Sandbox Code Playgroud)

解构赋值解决了什么问题?

什么时候用,什么时候不用?

javascript destructuring ecmascript-6

5
推荐指数
1
解决办法
2531
查看次数

有状态双向RNN如何在Keras中运行

在Keras中,RNN的Bidirectional包装器也支持stateful=true.我真的不明白这是怎么回事:

在有状态的单向模型中,批次的状态被转移到下一批次.我猜它对双向模型中的前向层的作用相同.

但是后向层从哪里获取它的状态?如果我理解正确的一切,它应该从技术上接受"下一批"的状态.但显然"下一个"批次还不是计算机,所以它是如何工作的?

bidirectional deep-learning keras recurrent-neural-network

5
推荐指数
1
解决办法
525
查看次数

如何将多部分表单数据传递给AWS Lambda

我正在尝试从客户端发送文件并通过AWS API Gateway将其接收到我的Lambda函数,然后将该文件放入S3存储桶中.

我在API网关中使用以下作为默认参数模板

{"image" : $input.params('MediaUrl0')}
Run Code Online (Sandbox Code Playgroud)

我将如何在python中收到它:def read_upload_toS3(event,context):s3 = boto3.resource('s3')

amazon-s3 image-upload amazon-web-services aws-lambda aws-api-gateway

3
推荐指数
1
解决办法
5093
查看次数

在同一亚马逊帐户上的存储桶之间移动文件

我在 lambda 触发器中在 amazon s3 上移动文件时遇到了一些问题。我能够做到,s3.getObject但我认为我的问题是我在哪里做s3.putObject

var srcBucket = event.Records[0].s3.bucket.name;
var srcKey = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, " "));
var s3params = {Bucket: srcBucket, Key: srcKey};

s3.getObject(s3params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log("Loaded " + data.ContentLength + " bytes"); // successful response

    var destinationpath = destinationbucket + '/moved_files/';
    console.log("Destination: " +destinationpath);

    var destiniation_name = destinationpath + str.split("/")[3];
    console.log(destiniation_name);
    var upparams = {Bucket: destinationbucket, Key: destiniation_name,ContentType: data.ContentType, Body: data.Stream};
    s3.putObject(upparams,function(err, data) {
        if (err) …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 node.js aws-lambda

3
推荐指数
1
解决办法
4090
查看次数

测量 AWS Lambda 启动持续时间

我目前正在收集和记录我的函数的性能指标,我缺少的唯一指标是启动持续时间(我的函数非常大,压缩了大约 35MB)。我真的需要知道启动需要多长时间,更重要的是,它发生的频率(我感觉它发生的频率更高,因为我的并发执行限制已经提高)。

有没有办法在 Lambda 中检索这些信息?或者有人可以想到通过例如映射模板传递 API 网关调用的当前时间戳的可能性,以便我可以自己计算启动时间?

amazon-web-services aws-lambda aws-api-gateway

2
推荐指数
2
解决办法
1682
查看次数