1

最近我对 AWS 的了解越来越多。我一直在阅读白皮书并逐步完成各种服务。我从事 PHP 应用程序和前端开发已经有一段时间了。有两件事真的让我印象深刻。这两件事是使用带有事件触发器和 SQS(队列)的 Lambda 的无服务器架构。在过去的三年里,我一直在通过 Angular 等框架使用 REST over HTTP。

我突然想到,仅通过 Lambda 和消息队列就可以创建整个后端/服务层。也许我太天真了,因为我从未在现实世界的项目中使用过这种类型的架构,但这似乎是构建服务层的一种非常简单的方法。

是否有人构建了一个仅包含 Lambda 和消息队列的 Web 应用程序后端,而不是使用 REST 的“传统”http 请求。如果是这样,除了严重依赖 AWS 这样的供应商之外,这种架构还有哪些类型的缺点?

例如,难道不完全有可能使用这些技术构建一个 CMS,其中脚本以编程方式创建 AWS 资产,并给定一个对帐户具有完全管理员权限的密钥?

4

1 回答 1

0

是的,您实际上可以使用无服务器架构创建整个后端服务。

有很多 AWS 服务通常会参与到无服务器的游戏中。DynamoDB、SNS、SQS、S3 等等。AWS Lambda 是骨干,在某种程度上充当了绑定这些服务的粘合剂。

无服务器并不意味着您从“传统”http 请求转移到消息队列。如果您需要 Web 界面,您仍然需要使用 HTTP。您将主要使用消息队列来解耦您的服务。

因此,如果您希望该服务可以像您的 REST 服务一样通过 HTTP 访问并且仍然是无服务器的,那么您也可以这样做。为此,您需要将 AWS API Gateway 与 AWS Lambda 结合使用

一个主要的缺点/限制是调试不是很简单。您无法登录系统,也无法附加远程调试器。然后很明显你会和供应商联系在一起。

然后是资源限制。例如,Lambda 可以为您提供 5GB 的最大内存占用,因此如果您需要执行一些需要更多内存且不能分解为子任务的计算密集型工作,那么无服务器 (AWS Lambda) 不适合您。

于 2018-07-19T02:40:06.580 回答