Вызов лямбды из другой лямбды или выставление api через api-gateway - PullRequest
0 голосов
/ 17 февраля 2020

Я обдумываю, должен ли я вызывать лямбду напрямую из другой лямбды или я должен выставлять api через api-gateway перед лямбдой. Я ищу плюсы и минусы для обоих.

1 Ответ

1 голос
/ 17 февраля 2020

Подход № 1 Использование API-шлюза

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

Однако с этими плюсами связаны недостатки из-за некоторых ограничений использования API Gateway. По умолчанию время интеграции API-шлюза (жесткий предел) API-шлюза составляет 29 секунд - это означает, что функции Lambda необходимо отправить ответ API в течение этого периода времени, иначе API завершится с ошибкой 504. Вы можете ознакомиться с другими ограничениями, связанными с API Gateway здесь .

Подход # 2 Lambda, вызывающий Lambda

Я не большой поклонник этого подход и есть несколько причин для этого. Я начну с дополнительного кода, который вы должны написать - ту же задачу с лучшими функциями можно выполнить с помощью API Gateway с простыми настройками на консоли AWS.

Контейнер, вызывающий другой контейнер (Lambda), может привести к проблемам, связанным с контейнером - сетевая работа, повторное использование контейнера и даже правильное управление разрешениями IAM.

Кроме того, лямбда-функция может вызываться только тремя опциями - SDK, CLI или объектом, имеющим разрешение «Вызывать». В общем, вам нужно иметь какой-то ресурс перед вашей первой лямбдой, чтобы вызвать его, который затем вызовет вторую. По моему мнению, API Gateway - это лучший интерфейс, который вы можете иметь для Lambda, который точно AWS имел в виду создание этих двух сервисов.

Один из плюсов, которые я могу придумать, это время выходное значение - лямбда может работать максимум до 15 минут. Если ваш клиент не требует быстрого ответа, вы можете запустить эти две функции Lambda в течение более длительного времени для выполнения кода.

Сводка

Вся вышеприведенная информация было довольно общим для всех, кто хочет использовать API Gateway и Lambda. Еще раз скажу, что использование API Gateway - более удобный и полезный подход, однако он может зависеть от вашего варианта использования. Надеюсь, это поможет!

...