Маршрутизация шлюза AWS API

#aws-lambda

#aws-lambda

Вопрос:

Как можно направить запрос от API Gateway на основе функций lambda A / B / C на основе того факта, присутствует или нет определенный заголовок?

 https://api.example.com/prod

if the headers "UserType" is:

guest -> redirect to lambda A
normal -> redirect to lambda B
admin -> redirect to lambda C
  

Я знаю, как использовать только другой URL, например:

 https://api.example.com/prod
https://api.example.com/dev
  

Ответ №1:

На самом деле это невозможно. Мы можем привязать только одну лямбда-функцию к определенному ресурсу API Gateway. Заголовки доступны как параметр события в самой функции lambda.

Предпочтительным способом было бы создать 3 разные функции (ваша бизнес-логика будет находиться здесь) в вашем lambda и на основе usertype вы можете вызвать функцию.

И если вы действительно хотите использовать три разных лямбда-выражения, вы можете использовать метод invoke, доступный в aws-sdk. Синтаксис и пример кода можно найти по следующей ссылке.

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html#invoke-property

2-й метод определенно увеличит время отклика.

Комментарии:

1. Очень четкий ответ! спасибо, что нашли время и помогли совершенно незнакомому человеку.