amazon-web-services - Lambda 触发的 Pentaho di 工作
问题描述
请帮助,如何实现?
要求:
当 AWS S3 存储桶中有新文件可用时,将触发 lambda 进程,并应触发用于验证/处理文件的 Pentaho 作业。
Pentaho Job 应该在服务器而不是 Lambda JVM 中执行(以利用提供 Pentaho 7.1 客户端社区版本的 Linux 服务器的资源。)
注意:我遵循https://dankeeley.wordpress.com/2017/04/25/serverless-aws-pdi/中的方法,这会在 Lambda JVM 中执行代码,但根据我们的要求,我们需要在linux服务器。
基础设施细节:
Pentaho 代码将在服务器的文件 repo 中;挂载位置示例:/mnt/data
Pentaho 版本:Pentaho 7.1 Client 社区版。
服务器:Linux
提前致谢。
解决方案
如果您希望 Pentaho 作业在服务器而不是 Lambda JVM 中执行,则根本不需要 AWS Lambda。
相反,您可以使用
基本上,您需要安装一个 HTTP 服务器并提供一个 HTTP 端点,当 S3 中有新文件时可以调用该端点。因此,当 AWS S3 存储桶中有新文件可用时,您可以将通知设置为 AWS SNS 而不是 AWS Lambda,然后作为此 SNS 主题的订阅者,您可以挂钩您在上面的步骤 2 中预置的 HTTP 终端节点。
因此,每当调用一个新文件时,都会向 SNS 发送通知,然后 SNS 会将其推送到 HTTP 端点,然后您可以读取该文件并执行您的 Pentaho Job
推荐阅读
- php - 如何使用 htaccess 隐藏查询字符串
- forms - 表单视图中的可编辑树视图未保存
- python - 如何替换列表中的部分字符串
- netsuite - NetSuite 信函模板未合并
- python - 用python打开.txt文件
- docker-compose - docker-compose up 卡在“附加到....”
- python - re.findall :当 {} 已用于匹配的出现范围时,在正则表达式中插入变量值失败
- mysql - JDBC连接被拒绝,mysql端口值保持为0,不能改成3306
- php - 获得双倍查询 laravel
- oracle - 带有原始正文的 HTTP POST 请求到 ORDS PL/SQL 网关?