Получить не тело файла из multipart / form-data с помощью AWS API Gateway и Lambda

Я пытаюсь получить данные из multipart/form-data POST к моей веб-службе ASW Lambda через шлюз API.

С http POST имеет тип контента "multipart / form-data"и тело, которое закодировано URL. Данные файла также отправляются в этом сообщении (следовательно, multipart, я думаю).

веб-служба должна интегрироваться с сервисом thirdparty, поэтому изменение формата POST на самом деле это не вариант.

Я видел этот нить говорю о преобразовании данных, закодированных URL, в объект JSON для использования в лямбде, но это не делает трюк.

Я также попытался установить Запрос На Интеграцию ->Шаблоны Отображения для типа контента multipart/form-data до ввод passthrough. Это тоже не помогло.

я наткнулся на другой вопрос о загрузке файла с помощью multipart/form-data, но поскольку меня не интересует файл, только тело, этот ответ не помогло.

ниже найдите скриншот (извините) захваченного сообщения через runscope.

Post details

1 ответов


Если цель состоит в использовании лямбда, вам нужно будет передать действительный JSON функции. В настоящее время нет способа JSON-ify данных внутри шлюза Api, который входит в качестве данных, отличных от JSON.

наше краткосрочное исправление (в нашем отставании) - предоставить переменную в шаблонах отображения, чтобы захватить необработанный ввод запроса. Таким образом, вы можете сделать простое преобразование JSON с помощью шаблона, такого как:

{
    "body" : "$input.body"
}

или что-то подобное.

проверить шаблон отображения ссылка для получения дополнительной информации: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html

Edit 4/7-функция была выпущена как $input.тело