Передача данных из внешнего API в AWS Kinesis

#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 данными.