Доступ к настраиваемым заголовкам в ответе интеграции aws apigateway (настраиваемая интеграция лямбда) - PullRequest
0 голосов
/ 28 мая 2020

У меня есть конечная точка шлюза api, которая находится перед лямбда (не использует интеграцию лямбда-прокси, использует настраиваемую интеграцию лямбда). Лямбда возвращает следующее:

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

 const response = {
     statusCode: 200,
     body: JSON.stringify({
         message: 'some message'
     }),
     headers: {
         bob: 'this is bob'
     },
 };

 return response;
};

Я пытаюсь получить доступ к заголовку bob, как в запросе на интеграцию: integration.response.header.bob. Это не работает. Я могу вытащить это из тела вот так integration.response.body.headers.bob. Я предполагаю, что первое не работает, потому что я не использую интеграцию с лямбда-прокси? Также заметил, что я могу получить integration.response.header.Content-Type. Может кто-нибудь объяснить, как правильно добавить пользовательские заголовки, переданные из лямбды, как в приведенном выше коде (или это единственный вариант, чтобы получить его из тела, как я пытался)?

1 Ответ

0 голосов
/ 22 июня 2020

Заголовки интеграции (integration.header.header-name) - это заголовки, которые Lambda Service отправляет в API Gateway. Мы не контролируем эти заголовки. Это стандартные заголовки - Content-Type, Date и т. Д. c. и являются частью «заголовков ответа конечной точки».

Принимая во внимание, что настраиваемые заголовки, которыми вы управляете, являются частью «тела ответа конечной точки». Чтобы ответить на ваш вопрос - да, вам нужно получить настраиваемые заголовки из тела.

Посмотрите приведенный ниже фрагмент журналов выполнения API Gateway, чтобы увидеть разницу.

Mon Jun 22 04:28:51 UTC 2020 : Endpoint response headers: {Date=Mon, 22 Jun 2020 04:28:51 GMT, Content-Type=application/json, Content-Length=72, Connection=keep-alive, x-amzn-RequestId=4d6d78b5-bb45-4e8d-893f-a409563e493c, x-amzn-Remapped-Content-Length=0, X-Amz-Executed-Version=$LATEST, X-Amzn-Trace-Id=root=1-5ef03382-d494d01d575754f5b551dfd3;sampled=0}
Mon Jun 22 04:28:51 UTC 2020 : Endpoint response body before transformations: {"statusCode": 200, "body": "Hello!", "headers": {"bob": "this is bob"}}
Mon Jun 22 04:28:51 UTC 2020 : Method response body after transformations: {"statusCode": 200, "body": "Hello!", "headers": {"bob": "this is bob"}}
Mon Jun 22 04:28:51 UTC 2020 : Method response headers: {X-Amzn-Trace-Id=Root=1-5ef03382-d494d01d575754f5b551dfd3;Sampled=0, Access-Control-Allow-Origin=*, Content-Type=application/json}
Mon Jun 22 04:28:51 UTC 2020 : Successfully completed execution
Mon Jun 22 04:28:51 UTC 2020 : Method completed with status: 200
...