【问题标题】:How do I map parameters in Lambda?如何在 Lambda 中映射参数?
【发布时间】:2018-09-03 22:17:23
【问题描述】:

我正在使用 Lambda、API 网关和 Cloudfront 制作动态图像大小调整工具。

网址是这样的。

https://xxx.cloudfront.net/restaurant-101o.png&w=200

但不幸的是,API 返回

{"errorMessage":"获取对象 restaurant-101o.png&w=200 时出错 桶(桶名)。确保它们存在并且您的存储桶在 与此函数相同的区域。"}

简而言之,lambda 不能分隔 2 个参数,即 'filename' 和 'w'。 另外,API网关是这样设置的。

我该怎么办? 提前致谢。

'use strict';

console.log('Loading function');

const im = require('imagemagick');
const aws = require('aws-sdk');

const s3 = new aws.S3({ apiVersion: '2006-03-01' });


exports.handler = (event, context, callback) => {
    const bucket = 'xxxx-contents';
    const filename = decodeURIComponent(event.filename);
    const width = decodeURIComponent(event.w);
    const params = {
        Bucket: bucket,
        Key: 'images/' +filename.split('-')[0]+'/'+filename.split('-')[1],
    };
    s3.getObject(params, (err, data) => {
        if (err) {
            console.log(err);
            var message = "Error getting object " + filename + " from bucket " + bucket +
                ". Make sure they exist and your bucket is in the same region as this function.";
            console.log(message);
            context.fail(message);
        } else {
            var contentType = data.ContentType;
            var extension = contentType.split('/').pop();

            im.resize({
                srcData: data.Body,
                format: extension,
                width: width
            }, function(err, stdout, stderr) {
                if(err) {
                    context.fail(err);
                    return;
                }
                callback(null, new Buffer(stdout, 'binary').toString('base64'))
            });
        }
    });
};

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-api-gateway


    【解决方案1】:

    您在创建 API 网关条目时是否勾选了“使用 Lambda 代理集成”?

    您可以在这里找到更多信息:https://stackoverflow.com/a/46114185/501217

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 2018-04-05
      • 1970-01-01
      • 2023-03-14
      • 2020-01-18
      • 2014-03-12
      相关资源
      最近更新 更多