【问题标题】:Trigger a Java REST endpoint upon S3 File Upload Event在 S3 文件上传事件时触发 Java REST 端点
【发布时间】:2020-06-09 21:21:46
【问题描述】:

我有一个 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 作业来执行此操作吗?如果是这样,有人可以解释一下吗? 或者我还有其他选择吗?

【问题讨论】:

  • 因此,如果我尝试总结一下,您想在 s3 存储桶中添加新文件时调用 REST 端点。对吗?
  • csv 文件有多大?
  • 嗨@MahmoudBenHassine,是的,这就是我想要实现的目标。谢谢

标签: rest amazon-s3 kubernetes spring-batch kubernetes-cronjob


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 2012-04-20
      • 2019-04-30
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多