Лямбда-функция Python AWS, предоставляющая json-заголовки на выходе - PullRequest
1 голос
/ 16 июня 2019

Я пытаюсь вызвать лямбда-сервис.Когда я нажимаю метод Get (в разделе Api gateway-> stage-> GET), вызываем Url, я вижу также заголовки json и код состояния.Но в видео лекции acloud гуру я вижу только тело.Может кто-нибудь сказать, что я здесь упускаю.

Вот моя функция Python:

def lambda_handler(event, context):

print("In lambda handler")

resp = {

   "statusCode": 200,

   "headers": {

   "Access-Control-Allow-Origin": "*",

},

"body": "myName"

}

return resp

Фактический вывод:

{"statusCode": 200, "headers": {"Access-Control-Allow-Origin": "*"}, "body": "myName"}

Ожидаемый результат:

myName

1 Ответ

1 голос
/ 16 июня 2019

здесь вы использовали интеграцию лямбда-прокси и не включили ее на уровне шлюза API.

Вы можете включить его в запросе интеграции, см. Изображение ниже enter image description here

Существует 2 типа интеграции API Gateway и Lambda

  1. Интеграция с прокси - Запрос к шлюзу API напрямую пересылается в лямбду, а ответ отправляется из лямбды. мы должны создать тело ответа с соответствующим кодом состояния и заголовками внутри лямбды в этой интеграции
  2. Лямбда-интеграция - запрос может быть изменен перед отправкой в ​​лямбду, а ответ может быть изменен из лямбда-ответа на уровне шлюза API с использованием шаблонов отображения

Этот пост в блоге дает более подробную информацию о 2 интеграциях https://medium.com/@lakshmanLD/lambda-proxy-vs-lambda-integration-in-aws-api-gateway-3a9397af0e6d

...