aws lambda @ edge + Cloudfront ERROR()

时间:2018-01-08 12:59:20

标签: node.js amazon-web-services amazon-s3 aws-lambda aws-lambda-edge

error

我正在使用lambda @ edge + cloudfront来做一些图像调整大小等。我的来源是S3存储桶。

问题当我尝试通过浏览器上的云端呼叫s3内的对象时,我得到上述错误(图片)。它甚至发生在我只使用测试功能时(下图)。

我如何调用/查询它:我的s3被设置为origin,所以我只使用我的cloudfront域名d5hbjkkm17mxgop.cloudfront.net并添加s3路径/my_folder/myimage.jpg

使用的浏览器网址:d5hbjkkm17mxgop.cloudfront.net/my_folder/myimage.jpg

exports.handler = (event, context, callback) => {
    var request = event.Records[0].cf.request;
    console.log(event);
    console.log("\n\n\n");
    console.log(request);

    callback(null, request);

};

我很确定请求是一个对象 - 不知道为什么会发生这种情况。 如果在aws控制台中测试一切正常 - 那么它必须是一个cloudfront / lambda接口错误 - 因为甚至没有调用lambda(没有生成新的log entrie)。

我也遇到了来自cloudfront的访问错误:

2018-01-08  12:40:20    CDG50   855 62.65.189.38    GET d3h4fd56s4fs65d4f6somxgyh.cloudfront.net    /nv1_andrej_fake_space/98f741e0b87877c607a6ad0d2b8af7f3ba2f949d7788b07a9e89453043369196 502 -   Mozilla/5.0%2520(X11;%2520Ubuntu;%2520Linux%2520x86_64;%2520rv:57.0)%2520Gecko/20100101%2520Firefox/57.0    -   -   LambdaValidationError   usnOquwt7A0R7JkFD3H6biZp21dqnWwC5szU6tHxKxcHv5ZAU_g6cg==    d3hb8km1omxgyh.cloudfront.net   https   260 0.346   -   TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 LambdaValidationError   HTTP/2.0

有什么想法吗?

已编辑:分号

1 个答案:

答案 0 :(得分:0)

enter image description here

不要忘记您的Lambda的发布新版。仅保存是不够的。上次发布的Lambda是实际部署的,但是在aws控制台窗口中可能有不同的代码。

编辑:另一个问题 - 不要忘记在CloudFront设置中更改功能版本。您必须选择绑定到Lambda的所需CF分配。选择CF分配,然后转到行为,选择编辑行为。向下滚动,最后一个条目是 Lambda函数关联(见下图)

enter image description here

Lambda函数ARN 中的最后一个数字是已部署的lambda的版本号。