0

我正在使用无服务器架构在 AWS 中构建一个 Web 应用程序。

该应用程序的目的是公开一个公共 API 来上传来自世界各地的文件。

我使用 AWS API-Gateway 和 Lambda 来执行我的代码和 S3 作为存储。

我知道使用 Java Spring 框架编写我在 Lambda 函数中部署的代码是非常有可能并且得到很好的支持(即使是像无服务器框架这样的第 3 方)。

但是,真的推荐吗?Spring 应用程序通常需要 30 秒或更长时间才能完全加载,并且 Lambda 应该立即运行。

为什么 AWS 甚至支持这个选项(因为这听起来是个非常糟糕的主意)?

4

3 回答 3

1

Java 是 AWS Lambda 支持的编程语言之一。可以使用 Java 运行应用程序,您只需考虑预热时间,如果这适合您的用例 - 然后使用它。如果您没有收到请求,您还可以使用 SNS 和 lambda 挂钩来保持温暖

于 2017-06-14T12:46:39.940 回答
0

就个人而言,我会尽可能避免为 AWS lambda 使用 java 运行时。我知道假设您正在考虑将现有实现迁移到微服务中,那么使用 java 是非常诱人的。但是与其他运行时相比,您总是要付出预热时间慢的代价。您也可能会错过 Java 编译器优化,因为 lambda 可能没有被调用足够多的次数来触发 C1 和 C2 编译。

如果您打算编写精益实现,我的偏好是仅将 java 用于 lambda,这意味着没有 spring、hibernate 等。

于 2017-10-10T07:04:32.267 回答
0

将 Java 与 AWS lambda 一起使用非常好,但 Lambda 是函数而不是应用程序!

所以你应该避免使用像 Spring 这样的框架,因为你不需要它。

问题是你想在你的函数中实现什么,为什么你需要一个框架来执行这么少量的代码?你的用例是什么?

于 2017-10-10T07:10:16.587 回答