#amazon-web-services #rest #amazon-kinesis
Вопрос:
Я новичок в экосистеме AWS. Я создаю (почти) систему реального времени, в которой данные поступают из внешнего API. API обновляется каждые 10 секунд, поэтому я хотел бы использовать и заполнять свой конвейер Kinesis, как только появятся новые данные. Однако я не уверен, какой инструмент использовать для этого. Я провел небольшое исследование, и, думаю, у меня есть два варианта:
- AWS lambda, которая запускается каждые 10 секунд и помещает данные в Kinesis
- Пошаговая функция AWS
Каков стандартный подход для данного случая использования?
Ответ №1:
Функции шага AWS создаются лямбда-функциями. То есть каждый шаг в рабочем процессе на самом деле является лямбда-функцией. Вы можете рассматривать рабочий процесс, созданный функциями AWS Step, как цепочку лямбда-функций.
Если вы не знакомы с тем, как создать рабочий процесс, ознакомьтесь с этим руководством по AWS:
Создавайте рабочие процессы AWS без сервера с помощью пакета AWS SDK для Java
(вы можете создать лямбда-функцию на любом поддерживаемом языке программирования. Этот, оказывается, использует Java).
Теперь, чтобы ответить на ваш вопрос, можно использовать рабочий процесс для заполнения потока данных Kinesis. Вы можете создать лямбда-функцию, которая собирает данные (используя логику в вашей лямбда-функции), а затем вызвать операцию PutRecord Kinesis для заполнения потока данных. Вы можете создать запланированное событие, которое запускается каждые x минут на основе выражения CRON.
Если вы используете выражение CRON, вы можете использовать API пошаговых функций AWS для запуска рабочего процесса. То есть создайте еще одну лямбда-функцию, запуск которой запланирован, скажем, каждые 10 минут. Затем в этой лямбда-функции используйте API пошаговых функций для вызова рабочего процесса. Теперь рабочий процесс может заполнять поток данных Kinesis данными.