0

Я создал образец AWMS лямбда-функции и интегрировал эту функцию с AWS API.Не удалось получить доступ к строковому значению в aws лямбда-функции из запроса AWS API

Я написал метод post в API и выбранном приложении/JSON, чье сопоставление интеграции запросов выглядит следующим образом.

{ 
    'songTitle':"$input.params('songTitle')" 
} 

songTitle отправляется как параметр (приложение/JSON) с запросом API.

Однако я получаю $ input.params() как пустой.

Поскольку я новичок в этом, я понятия не имею, что является правильным способом.

Пожалуйста, руководство для доступа к этим Params

+0

Просто перейдите в '{ 'songTitle': 'Some Random Song Titles' }' и вы сможете получить названия песен, вызвав 'event.songTitle' –

+0

@DylanLaw я пробовал то же самое. event.songTitle возвращает пустое. – Spartan

+0

Возможно, вы можете показать нам свою лямбда-функцию и как вы вызываете функцию лямбда? –

ответ

0

Я не уверен, если это ваша проблема, но одиночные кавычки не являются такими же, как двойные кавычки в JSON. Все, что в шаблоне сопоставления, которое не экранировано с символом $, записывается как-в фактической полезной нагрузке.

Должно быть:

{ 
    "songTitle":"$input.params('songTitle')" 
} 

Edit: Если это не работает, пожалуйста, тест, отправив заголовок Content-Type в запросе в качестве приложения/JSON. Если вы не отправляете Content-Type вообще, он должен по умолчанию использовать шаблон отображения application/json.

+0

Я нашел решение, но разместил его здесь сегодня. Когда мы читаем значения из основной части запроса, мы должны использовать другой синтаксис. Используйте $ input.path ('$. Key_from_request_body'); – Spartan

0

В случае чтения входных параметров из заголовка запроса части (для запроса отображения интегрирования) синтаксиса:

{ 
    'songTitle':"$input.params('songTitle')" 
} 

Если мы хотим, чтобы прочитать параметры из части тела запроса мы должны написать, как

{ 
    'songTitle':"$input.path('$.songTitle')"`enter code here` 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^