Лямбда-функция AWS - доступ к Path и значение параметра запроса - PullRequest
0 голосов
/ 04 октября 2019

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

Я ищу

emp / 1 - для получения emp id emp / _search? Name = "apple" - имя поиска содержит apple.

Вопрос в том, как получить путь и параметры запроса в коде Java.

public class TestAwsLambdaFunction implements RequestHandler<Map<String, Object>, String> {

    @Override
    public String handleRequest(Map<String, Object> input, Context context) {
        String empID= null;
        try {
            @SuppressWarnings("unchecked")

            Map<String, String> pathParameters = (Map<String, String>) input.get("querystring");                

            empID= pathParameters.get("id");
            System.out.println(empID);
            // TO-Do Business logic - 


        } catch (Exception e) {
            // TODO: handle exception
        }
        return "Hello from Lambda!" + empID;
    }

}

Каков наилучший способ предоставления моих данных в вызове Rest api. Немного путают с Lambda или без сервера. есть возможность показывать данные по страницам. Так как я новичок в AWS. Пожалуйста, ведите меня

Ответы [ 2 ]

1 голос
/ 05 октября 2019

Вопрос в том, как получить путь и параметры запроса в коде Java.

Вы можете использовать шаблон отображения для отправки свойства $ input.params ('name') в теле запроса наваша лямбда-функция.

Каков наилучший способ предоставления моих данных в Rest api call

Используйте прокси-интеграцию с этими рекомендациями:

  • Избегайте жадных переменных пути, за исключением, возможно, универсального 404.
  • Избегайте использования ЛЮБОГО метода.
  • Определите модели запросов и включите проверку запросов (помните, что по умолчанию она отключена).
  • В вашей лямбде проверьте, что заголовок типа контента соответствует одной из ваших моделей запросов, и верните код состояния 415 Неподдерживаемый тип носителя, если это не так (интеграция прокси-сервера использует транзитное поведение WHEN_NO_MATCH). После этой проверки ваша лямбда может предположить, что проверка запроса полностью выполнена.

Бен Кехо

1 голос
/ 05 октября 2019

Вам нужно выбрать Lambda Proxy Integrations при настройке шлюза API. Вот официальный документ Настройка интеграции лямбда-прокси в API Gateway .

В этом случае API-шлюз будет передавать в Lambda все данные запроса, включая заголовки запроса, параметры строки запроса, переменные пути URL и т. Д. Затем вы можете проанализировать данные, используя ваш код Java.

...