首页 > 解决方案 > 通过 API-Gateway 在 S3 上访问 Webapp(HTML、JS、CSS)

问题描述

我可以通过 API-Gateway 访问我的 webapp 的 index.html,但它如何使用存储在同一个 S3-Bucket 中的 JS 和 CSS 文件?

标签: amazon-web-servicesamazon-s3proxyapi-gateway

解决方案


至少有以下三种方法:

  1. aws-serverless-express将允许您通过 Lambda 提供 express api,它可以与 API Gateway 集成。您可以使用这种方法通过express.staticfrom express 静态地为 ui 应用程序提供服务。这样,您根本不需要 S3,您可以为静态站点或非静态服务器端渲染提供服务。
  2. 同样,使用 aws-serverless-express,但这次创建一个使用aws-sdk调用 S3 的 express 服务。
  3. 第三个选项是您可以将 API Gateway 设置为使用 S3 代理,如下图所示

可能还有其他方法可以使用 Cloudfront 或 Route 53 进行编排而不是 API 网关,特别是如果您可以在不同域上拥有 UI 和后端,那么您允许一些 CORS 请求。我个人更喜欢方法#1,因为基础设施更简单。

在此处输入图像描述


推荐阅读