Получить не тело файла из 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.
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.тело