适用于静态网站的AWS技术堆栈解决方案

时间:2020-04-20 16:23:20

标签: amazon-web-services aws-lambda

我有一个项目,正在构建一个简单的单页应用程序,该应用程序每天仅需要从api中提取一次数据。我有一个后端,我正在考虑使用golang进行构建,在这里我需要做两件事:

1)有一个计划的作业,该作业每天都会用新数据更新DB

2)将数据提供给前端。由于数据每天只会更新一次,因此我想在每次更新后cache进行更新。

既然如此,AWS提供的选项数量实在是太多了,我想知道对于这种情况,理想的解决方案是什么。我应该使用连接到lambda的{​​{1}}并用计划的作业对其进行更新吗?我是否应该再创建一个单独的REST API Lambda,以便从DB中提取数据并从前端调用它? 我真的很感谢针对这个问题的建议。

1 个答案:

答案 0 :(得分:1)

她是我的建议;

  • 创建一个lambda函数
    • 它将从数据库中获取所需的信息
    • 您可以使用S3或DynamoDB保存您的内容。两种解决方案可能都是免费的,请根据您的使用情况检查free tier offers
    • 它将获取的内容保存到S3或DynamoDB(您可以检查Dax的DynamoDB缓存)
  • 创建一个Api网关并将其集成到您的lambda(Elastic LoadBalancer是另一种选择)
  • 在CloudWatch上创建Schedule Expressions每天触发一次lambda
  • 从您的前端向Api网关或ELB发出请求。
  • 您可以使用Route 53进行域命名。

您的lambda应该具有两个单独的功能,一个是响应计划表达,另一个是通过与S3 / DynamoDB通信来提供内容。

编辑:

这是架构

enter image description here

编辑:

如果内容将是静态的,则可以为静态站点服务配置一个S3存储桶,并且当触发时,您的日常lambda可以将其写入其中。然后,您不再需要api网关和DynamoDB。

这是s3 static content

的文档
相关问题