我正在尝试实现以下域/路径映射:
foo.com-> AWS S3中托管的静态Web内容
foo.com/dogs-> api网关端点
foo.com/cats-> api网关端点
foo.com/birds-> api网关端点
我需要使用什么服务来实现以上要求? 谢谢。
答案 0 :(得分:0)
满足上述要求的AWS服务:
答案 1 :(得分:0)
为此您有几种选择。由于您需要一个主机名foo.com,因此需要从一个可以将客户端流量定向到s3和api网关的服务开始。
这具有规模优势。
| -> S3
cloudfront -> |
| -> api gateway
How to setup cloudfront for API Gateway
How to seutp cloudfront with S3
由于您拥有Cloudfront,因此您可能想看看是否可以使用Lambda@Edge。
选项2:AWS Amplify
如果您对AWS服务没有太多经验,或者即使您这样做也是不错的选择,我建议您先查看一下,因为它为您简化了很多设置,并且具有一些不错的[功能]( https://aws.amazon.com/amplify/features/)。可以将Amplify看作是为应用程序开发人员提供的服务。
签出(Amplify API)[https://aws-amplify.github.io/docs/js/api]},用于创建REST或GraphQL端点。
我应该提到哪些框架可增强支持:iOS,Android,ReactNative,对于Web,它与React,Ionic,Angular和Vue.js进行了深度集成。
是的,使用Amplify作为选项1可能会得到相同的解决方案,这是最适合您的工作流程。
选项3拆分服务:
为foo.com和api.foo.com创建2个DNS条目
| -> (foo.com) cloundfront -> S3
client -> |
| -> (api.food.com) api-gateway
您可以在此解决方案中删除cloudfront,而只需使用S3 static
关于Route53的说明:您无需使用Route53,因为任何DNS服务都可以使用。如果您选择使用选项1 cloudfront,那么在任何DNS服务中创建CNAME都一样容易。但是,如果您使用的是Amplify,则将DNS服务移至AWS Route53将自动执行DNS管理。