Невозможно получить параметр прокси, работающий с лямбда-интеграцией - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть конечная точка API в API-шлюзе, определенная как:

/guide/{proxy+} 

, которая имеет методы get и пути запроса, определенные как прокси.

Затем я использую лямбда-прокси, который имеет и URL-путьпараметры как:

proxy - method.request.path.proxy

Я моя лямбда-функция Я хочу получить файл S3 из корзины на основе этого пути, поэтому у меня есть:

var AWS = require('aws-sdk');
    var s3 = new AWS.S3();

    exports.handler = async (event, context, callback) => {  


    var bucketName = 'my-bucket';
    var keyName = 'guide/' + event.proxy;
    var fileContent;

    let data = await getS3File(bucketName, keyName)
    let response = {
            "statusCode": 200,
            "body": data.Body
};

callback(null, response);
};

async function getS3File(bucket, key) {
        const params = {
        Bucket: bucket,
        Key: key
                       };

       return s3.getObject(params, (err) => {
         if (err) {
            // handle errors
            }
        }).promise();
}

К сожалению, когда я проверяю этов тесте в API-шлюзе, когда я передаю путь как: en/guide.pdf я получаю следующий ответ:

{
  "errorMessage": "The specified key does not exist.",
  "errorType": "NoSuchKey",
}

Файл там 100%, когда я проверяю его в лямбда-выражении (как тест), онзагружается.Почему так?Не могу понять.

ПРИМЕЧАНИЕ. Я не хочу устанавливать флажок Use Lambda Proxy integration, потому что в противном случае я теряю некоторые параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...