Запуск конечной точки Java REST при событии загрузки файла S3 - PullRequest
1 голос
/ 26 февраля 2020

У меня есть приложение Spring Batch, которое выполняет следующие действия:

  1. Другое приложение помещает файл CSV в корзину S3 INBOUND
  2. Приложение Spring Batch читает файл CSV
  3. используя данные каждой строки, он вызывает конечную точку API и получает кавычку
  4. Поместите эти кавычки во вновь созданный CSV и поместите в корзину S3 OUTBOUND

Spring Batch Прикладной технический стек

  • Создан с использованием Spring Boot

  • Средство запуска заданий Spring Batch вызывается на конечной точке REST

  • Развернуто в OpenShift

Что я хочу сделать,

Когда другое приложение помещает новый файл в корзину S3 INBOUND, оно должно вызвать Spring Batch Операция (вызов конечной точки REST, которая запускает задание)

Могу ли я сделать это с помощью задания Cron K8s, которое запускается событиями S3? Если да, то может кто-нибудь объяснить, как? Или у меня есть другие варианты?

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

Мое решение состояло в том, чтобы создать лямбда-функцию, которая запускается при загрузке файла .txt в папку INBOUND корзины S3.

Написал обработчик python для команды curl, чтобы попасть в конец REST модуля запуска заданий точка.

0 голосов
/ 03 марта 2020

Я не слишком знаком со службами AWS, но знаю, что они предоставляют услугу уведомления для сегментов S3: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-event-notifications.html

Одним из пунктов назначения уведомления о событии является AWS Лямбда. Таким образом, вы можете попытаться создать функцию, которая вызывает остальную конечную точку и которая запускается при получении уведомления типа ObjectCreated.

...