什么理想情况下无服务器架构/框架适合这个简单的静态生成的 Web 应用程序?

问题描述

我正在制作一个非常简单的网络应用,管理员用户可以在其中进入后端并为特定媒体创建一个登陆页面,其中包含一些额外的字段(标题、描述等)。

每个页面都有一个类似于 example.com/page-name-slug 的 URL,输入不存在的 slug 会正常失败(例如重定向www.example.com)。

我想尽可能简单和廉价地在 AWS 上托管它,但我也希望它具有高性能(即,毫无问题地处理大流量高峰)。我还希望尽可能多地使用开箱即用的框架,并尽可能少地进行自定义开发。

我的理想设置:

  1. 一些 CMS 风格的产品,它们作为 AWS Lambda funcs 运行(因此可能是 SPA),或者在一个非常小的 Elastic Beanstalk 环境中运行(不太理想)。
  2. 使用任一
    • AWS 数据库即服务产品之一(dynamo DB 或 Serverless aurora)。我正在尽量避免为一个只会偶尔更改的数据库实例支付持续的每小时费用。
    • 文件支持的存储(即 JSON 文档)
    • Git
  3. 无论后端存储机制如何,我都想为每个登录页面写出(到 S3 存储桶)一个文件名为 page-name-slug.json 的 JSON 文件。 (这个和“后端存储”可能真的是一回事……我们不是在谈论大量的对象)。
  4. 我有一个简单的前端应用程序(在本例中为 Vue),它查看 URL 中的 slug 并异步获取正确的 json 文件以填充其数据。

一个明显的复杂性是我需要每个匹配 example.com/[slug] 的 url 来加载相同的 html/js 应用程序。这很容易通过 Cloudfront 函数/lambda@edge 完成,但值得一提。

主要是我想避免(在最大程度上可能):支付持续的服务器成本(无服务器等),并且不得不担心我的“API”上的流量负载(因此写出静态 JSON 文件,而不是从数据库等)。


我见过的“无头 CMS”/“JAMstack”产品都无法做到这一点。似乎大多数都针对博客之类的内容进行了优化,和/或无法静态呈现 JSON 文档而不是完整页面。当然,我可以让它在每页渲染应用程序的完整副本,并在 JSON 对象中刻录,但这对我来说并不那么干净。

我意识到从头开始构建会很容易,老实说我已经拼凑了一个有点不同的解决方案,但此时我只是好奇是否有一个项目或框架(或夫妇)符合要求。

我很想更多地了解人们在该领域成功使用的项目,因此非常欢迎有创意的想法。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)