首页 > 解决方案 > 使用 AWS API Gateway+Lambda 而不使其成为依赖项

问题描述

毫无疑问,API Gatway+Lambda 对微服务的好处。

我担心的是,如果我们决定将 API Gateway+Lambda 迁移到 ECS/Fargate 甚至另一个云会发生什么。

对于每个路由/操作使用一个 Lambda 函数似乎达成了共识。

我有一些关于如何使用这种方法进行设计的理论,这样代码可以从 Lambda 中拔出并插入到其他地方。

我也想知道社区中的其他人为实现这一目标做了什么?有没有人试图将 API 移出 Lambda 并能够使用 XXXX 设计成功地做到这一点?那里有什么教训?

语言对这个讨论并不重要,但我们使用的是 python3

标签: aws-lambdadependenciesmicroservicesaws-api-gateway

解决方案


你现在面对的东西有一个名字。这被称为“供应商锁定”。你几乎无能为力。

但是,我发现将 AWS Lambda 处理程序函数视为 Web 服务器中的控制器很有用。你会在你的控制器中做什么?您将验证传入数据,将其传递给服务层,然后序列化来自服务的响应并将其传递回 API 网关。长话短说,你的处理函数不应该包含业务逻辑,这使得即使从无服务器迁移到服务器也很容易。它也可能很好,因为它为优化留下了一些空间。如果您最终发现您的服务层架构为冷启动增加了大量时间,那么只需将其非规范化为单个文件即可。它会工作得更快,但你会牺牲代码的可维护性。没有灵丹妙药,软件一直都是关于权衡的。:)


推荐阅读