2

我有一个 Spring Batch 应用程序,它执行以下操作,

  1. 另一个应用程序将 csv 文件放入 S3 存储桶 INBOUND
  2. Spring Batch 应用程序读取一个 csv 文件
  3. 使用每一行的数据,它调用一个 API 端点并获得一个报价
  4. 将这些引号放入新创建的 csv 并放入 S3 存储桶 OUTBOUND

Spring Batch 应用技术栈

  • 使用 Spring Boot 创建

  • 在 REST 端点上调用 Spring Batch Job Launcher

  • 部署在 OpenShift 中

我想做的事,

当其他应用程序将新文件放入 S3 INBOUND 存储桶时,它需要触发 Spring Batch 操作(调用启动作业的 REST 端点)

我可以使用由 S3 事件触发的 K8s Cron 作业来执行此操作吗?如果是这样,有人可以解释一下吗?或者我还有其他选择吗?

4

2 回答 2

0

我对 AWS 服务不太熟悉,但我知道它们为 S3 存储桶提供通知服务:https ://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-event-notifications.html

事件通知目标之一是 AWS Lambda。因此,您可以尝试创建一个调用 rest 端点并在类型通知ObjectCreated到达时触发的函数。

于 2020-03-03T10:11:50.363 回答
0

我的解决方案是创建一个 lambda 函数,该函数在将 .txt 文件上传到 S3 存储桶的 INBOUND 文件夹时触发。

为 curl 命令编写了一个 python 处理程序以命中作业启动器 REST 端点。

于 2020-03-23T06:09:49.060 回答