Aws lambda 使用AWS API网关+;Lambda,而不会成为依赖项

Aws lambda 使用AWS API网关+;Lambda,而不会成为依赖项,aws-lambda,dependencies,microservices,aws-api-gateway,Aws Lambda,Dependencies,Microservices,Aws Api Gateway,毫无疑问,API Gatway+Lambda为微服务带来的好处 我担心的是,如果我们决定将API Gateway+Lambda迁移到ECS/Fargate,甚至其他云,会发生什么 对于每个路由/操作使用一个Lambda函数,似乎存在共识 我有一些关于如何使用这种方法进行设计的理论,这样代码就可以从Lambda中拔出并插入到其他地方 我也想知道社区中的其他人为实现这一目标做了哪些工作?是否有人试图将API移出Lambda,并使用XXXX设计成功地实现了这一点?那里有什么教训 这种语言对本次讨论来说

毫无疑问,API Gatway+Lambda为微服务带来的好处

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

对于每个路由/操作使用一个Lambda函数,似乎存在共识

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

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


这种语言对本次讨论来说并不重要,但我们使用的是python3,您现在面临的问题有一个名称。它被称为“供应商锁定”。你对此几乎无能为力


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

我基本上要让Lambda将事件和上下文对象传递给我的python包,仅此而已。该包将有一个AWS事件/上下文的翻译类,从请求中提取JSON,然后传递它。我将使用CodePipeline/SAM模板部署lambda