Emp*_*k12 13 amazon-s3 amazon-cloudfront amazon-route53 aws-lambda aws-api-gateway
我一直在尝试在AWS上设置一个简单的无服务器应用程序,但我无法理解如何将这些部分与自定义域放在一起.
Web应用程序路由应如下所示:
/ - >从S3 Bucket提供静态HTML/CSS/JS/api/people/ - > Lambda函数调用/api/dogs/ - > Lambda函数调用/stats/ - > Lambda函数调用/backend/ - >从S3 Bucket提供静态HTML/CSS/JS我尝试过使用API Gateway和CloudFront并将它们与Route53连接到我的自定义域,但它们似乎只支持静态S3或Lambda JSON路由.
AWS架构将如何显示我可以自由选择路由到不同AWS资源的路径(例如/- > S3,/api/people/- > Lambda,/api/dogs/- > Lambda,/backend/- > S3)
非常感谢你提前.
使用无服务器技术设置完整堆栈Web应用程序的主要挑战之一是具有代理层来路由计算(Lambda)和静态文件(HTML,JS,CSS,Images)的消息.尽管API Gateway在内部使用CloudFront,但它无助于提供来自S3的静态内容和使用相同域的动态内容(避免跨域访问).
因此,需要使用AWS CloudFront将消息代理到API网关和Lambda,这些消息我一直用于大多数Web项目.权衡是,在通过CloudFront访问API网关时,存在增加的延迟和成本(虽然这并不重要),这应该是可接受的.
有关更多详细信息,请参阅我在AWS上使用Full Stack无服务器Web应用程序的文章.
小智 1
我对 AWS 比较陌生,但最近我成功地通过 S3 运行了一个静态站点并访问了 Lambda 函数,所以它在我的脑海中相当新鲜。
首先,无法将特定的域路径定向到特定的 AWS 资源。因此,如果您使用 Route 53 将域指向 S3 存储桶来提供静态资源,则该域的所有路径将尝试仅获取该 S3 存储桶中的资源。现在,由于您的“后端”还提供来自 S3 存储桶的静态文件,从技术上讲,这可能与您使用的“/”位于同一个 S3 存储桶中,只是存储在名为“后端”的文件夹中(如果可以接受)。
否则,真正的答案是使用子域。
有了这个概念,您可以执行以下操作:
您只需将记录集添加到您的域的托管区域即可创建子域。请参阅此处的文档。
完成所有这些设置远远超出了这个问题的范围,而且会很长,但希望这些信息有意义,并有助于引导您走向更有意义的方向。
| 归档时间: |
|
| 查看次数: |
2497 次 |
| 最近记录: |