Лямбда из API gateway VS Kinesis Streams


Фон

Я изучаю AWS kinesis, API gateway.

Я понимаю, что всякий раз,когда запросы попадают в API gateway, я могу перенаправить данные в поток или я могу выбрать триггер lambda(который будет выполнять некоторую обработку ).

Мысли и запросы

Итак, я подумал, что если я могу напрямую вызвать лямбду из API gateway(когда поступают запросы, это происходит в реальном времени), то в чем преимущество наличия потока kinesis (для данных реального времени обработка)?

Я мог бы удалить потоки и напрямую запускать lambda из API gateway (даже создать несколько API для разных задач)

Любые мысли в этом сценарии!

2 4

2 ответа:

Решение, которое вы используете, действительно зависит от данных, которые вы обрабатываете, и от того, что вы хотите с ними сделать. Дополнительная информация о данных и результатах вашего сценария может сузить область применения AWS. Вот упрощение 3-х вариантов:

  1. Потоки Kinesis в основном предоставляют окно сдвига времени в большой объем данных. Он заботится о хранении этих данных достаточно долго, чтобы вы могли выбрать соответствующие данные или выполнить агрегацию. Ваш анализ данных может быть хранится в базе данных. Потоки Kinesis-это хороший выбор, когда хранение всех поступающих данных является ненужным и будет дорогостоящим.

  2. Kinesis Firehose предоставляет конечную точку для отправки данных в S3, Redshift или Elastic Search (или некоторую комбинацию). Затем вы можете выполнить анализ этих сохраненных данных. Это хороший выбор, если вы просто хотите, чтобы ваши необработанные данные оказались в базе данных для последующей обработки. Но вы должны заплатить за хранение этих данных. Если вам только нужно подмножество данных или результатов анализа, это было бы дорого.

  3. API Gateway to Lambda позволяет обрабатывать данные в режиме реального времени. Лямбда может делать все, что вы хотите с данными, у вас есть большая гибкость с этим решением. Но вы должны обрабатывать каждый запрос индивидуально, в то время как Kinesis Streams позволяет анализировать пакет данных.

Это зависит от частоты клиентских обращений и длительности вашей лямбда-функции.

Число одновременных исполнений лямбда-функции ограничено 100. При дросселировании лямбда-кода подходы к повторной попытке различаются между API Gateway и Kinesis stream.

См. https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html .

Возможно, вы захотите проверить оценку скорости запроса.

Кроме того, имейте в виду, что Кинезис поток гарантирует порядок поступления данных в осколок.