amazon-s3 – 使用自定义域的AWS Lambda和S3静态文件路由

我一直在尝试在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网关时,存在额外的延迟和成本(虽然这并不重要),这是可以接受的.

有关详细信息,请参阅我的文章Full Stack Serverless Web Apps with AWS.

转载注明原文:amazon-s3 – 使用自定义域的AWS Lambda和S3静态文件路由 - 代码日志