繁体   English   中英

如何使用 aws 设计多客户端预处理软件管道?

[英]How to design multiclient preprocess software pipeline using aws?

我的软件目标是自动化预处理管道,管道有三个代码块:

  1. 获取数据 - 通过 api 或通过客户端将 csv 上传到 s3 存储桶。

  2. 处理数据——我的目标是将来自不同客户端的数据统一到一个统一的端方案。

  3. 存储方案是数据库。 我知道这是一个非常常见的系统,但我找不到最适合它的设计。

要求是:

  1. 该系统不是实时的,对于每个客户,我计划每 X 天获取新数据,即使仅在一天后完成也没关系
  2. 每个客户端数据的处理部分都是唯一的,当然有一些共同的特征,但也有很多不同的特征和muniplation。
  3. 我希望系统是自动化的。

我想到了以下几点:

  1. The lambda solution: schedule a lambda for each client which will fetch the data every X days, the lambda will trigger another lambda which will do processing. 但是如果我有 100 个客户端,那么处理 200 个 lambda 表达式会很糟糕。

  2. 2.1 制作一个名为 Api 的项目,并为每个客户提供不同的脚本,我对 ec2 或 ecs 上的每个脚本都有一个 schudle。

2.2 有另一个项目调用处理,父class有公共代码,所有子类客户端代码都继承自它,API脚本将激活相关处理脚本。

最后,我很困惑什么是最佳实践,我只找到了处理一个客户端的示例,或者一个广泛的通用方案方法/图表块。 因为我知道它是一个如此普遍的系统,所以我会很感激从其他人的经验中学习。 将不胜感激任何参考链接或智慧

看一下Step Functions ,它将允许您解耦每个阶段的执行并允许您重用您的 Lambda。

通过将输入传递到步骤 function 顶部 Lambda 可能能够做出提供给其他人的决策。

要安排此操作,请使用已安排的CloudWatch 事件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM