在 S3 文件上传事件时触发 Java REST 端点
Trigger a Java REST endpoint upon S3 File Upload Event
我有一个 Spring 批处理应用程序,它执行以下操作,
- 另一个应用程序将一个 csv 文件放入 S3 存储桶 INBOUND
- Spring批处理应用程序读取一个csv文件
- 使用每一行的数据,它调用一个 API 端点并获得报价
- 将这些引号放入新创建的 csv 并放入 S3 存储桶 OUTBOUND
Spring 批量应用技术栈
使用 Spring 引导创建
Spring 在 REST 端点上调用批处理作业启动器
在 OpenShift 中部署
我想做什么,
当其他应用程序将新文件放入 S3 INBOUND 存储桶时,它需要触发 Spring 批处理操作(调用启动作业的 REST 端点)
我可以使用由 S3 事件触发的 K8s Cron 作业来执行此操作吗?如果可以,有人可以解释一下吗?
或者我还有其他选择吗?
我不太熟悉 AWS 服务,但我知道他们为 S3 存储桶提供通知服务:https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-event-notifications.html
事件通知目的地之一是 AWS Lambda。因此,您可以尝试创建一个调用 rest 端点的函数,该函数在 ObjectCreated
类型的通知到达时触发。
我的解决方案是创建一个 lambda 函数,该函数在将 .txt 文件上传到 S3 存储桶的 INBOUND 文件夹时触发。
编写了一个 python 处理程序来处理 curl 命令以命中作业启动器 REST 端点。
我有一个 Spring 批处理应用程序,它执行以下操作,
- 另一个应用程序将一个 csv 文件放入 S3 存储桶 INBOUND
- Spring批处理应用程序读取一个csv文件
- 使用每一行的数据,它调用一个 API 端点并获得报价
- 将这些引号放入新创建的 csv 并放入 S3 存储桶 OUTBOUND
Spring 批量应用技术栈
使用 Spring 引导创建
Spring 在 REST 端点上调用批处理作业启动器
在 OpenShift 中部署
我想做什么,
当其他应用程序将新文件放入 S3 INBOUND 存储桶时,它需要触发 Spring 批处理操作(调用启动作业的 REST 端点)
我可以使用由 S3 事件触发的 K8s Cron 作业来执行此操作吗?如果可以,有人可以解释一下吗? 或者我还有其他选择吗?
我不太熟悉 AWS 服务,但我知道他们为 S3 存储桶提供通知服务:https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-event-notifications.html
事件通知目的地之一是 AWS Lambda。因此,您可以尝试创建一个调用 rest 端点的函数,该函数在 ObjectCreated
类型的通知到达时触发。
我的解决方案是创建一个 lambda 函数,该函数在将 .txt 文件上传到 S3 存储桶的 INBOUND 文件夹时触发。
编写了一个 python 处理程序来处理 curl 命令以命中作业启动器 REST 端点。