AWS Lambda,用于多租户 Web 应用程序中的用户定义通知

本文关键字:应用程序 用户 通知 定义 Web Lambda 用于 AWS | 更新日期: 2023-09-27 18:35:45

AWS Lambda是下一个使用案例的好解决方案吗:

多租户 Web 应用程序托管在 AWS (EC2) 上。动态/自定义数据集可以由用户通过应用程序定义,并且数据存储在MongoDB中。需要一个允许用户定义规则的通知系统:在某些事件(实体创建/更新;属性更新)上,将执行脚本功能。在脚本中,如果满足条件,则检查给定实体的条件并发送电子邮件通知。

一种可能的解决方案是将脚本存储为 Lambda 函数,因为它看起来相对容易实现,但我不确定这是否是好的解决方案。可能有数千个 Lambda 函数。对最大功能数是否有一些限制?我害怕将用户定义的函数与我自己的函数分开,并且还害怕将所有不同的租户函数混合在一个地方(因为 Lambda 没有定义函数的一些树结构)。此外,意外更改或删除用户定义的函数也是可能的......

还是使用一些嵌入式脚本?

AWS 专家的任何意见,请...

AWS Lambda,用于多租户 Web 应用程序中的用户定义通知

如果不了解有关数据架构和将触发更新的规则类型的更多详细信息,很难推荐任何内容,但是您可以将规则存储在数据库中而不是在用户脚本中硬编码吗?然后,您可以只有一个脚本来获取更新的数据并检查是否有任何规则会导致来自更新数据的通知。

我直言,最好避免陷入这样的情况,即您必须接受来自系统外部(无法控制输入)的代码才能在系统内运行。您将接到太多客户的电话,他们希望您开发测试他们编写不佳的脚本。

我拥有的产品允许用户描述他们想要导入的自定义数据集的架构。该产品与已知数据源集成,并将其转换为内部架构。此外,该产品还允许客户从自定义源导入数据,以及要描述来自此类自定义源的属性的条件。

您是否考虑过在产品中对条件表达式(当前希望通过用户定义的脚本对其进行评估)进行建模,并实现评估相关触发器上的条件的后端评估引擎?根据结果,您可以触发发布操作(发送有关您的案例的通知电子邮件)。对于大多数方案,这应该足够了。

即使您在极少数情况下绝对必须支持某些自定义脚本,Lambda 也是一个低效的选择。为必须执行的每个脚本创建执行环境是矫枉过正的。如果脚本数量失控,您将无法控制您的环境。托管脚本执行环境将是要走的路。