我的设置:
API网关 - 10个API(api1、api2等),全部映射到一个自定义域名(api.xxx.com)
Route53 - 将api.xxx.com指向我的Cloudfront分配
Cloudfront - 创建了配送,设置为CNAME的api.xxx.com
我需要知道的是 - 我想将该Cloudfront的Origin设置为这个自定义域名,以便我可以调用像api.xxx.com/api1/endpoint、api.xxx.com/api2/endpoint这样的API。但是怎么做呢?我使用了我的api.xxx.com自定义域名(xxxxxxx.execute-api.us-east-1.amazonaws.com)作为默认行为Origin名称,然后认为所有10个API的请求都会正确路由,但实际上并没有发生。
可行的方案:我使用api1的Invoke Url创建了Origin名称,并将其分配给默认行为。因此,现在当我调用 "https://api.xxx.com/endpoint" 时,会调用api1。这是有意义的,但问题是 - 我需要API路径成为URL的一部分,例如"https://api.xxx.com/api1/endpoint",以便我可以区分它们。
不可行的方案:但是,我需要在分配中设置多个API,以便我可以像"https://api.xxx.com/api1/endpoint"这样调用它们。如果我使用Invoke URL作为API的Origin名称,我就不能将此API名称附加到URL中,否则会返回403错误。我希望如果我使用"自定义域名"下的"API网关域名"(毕竟,它具有xxxxx.execute-api.us-east-1.amazonaws.com的格式),我就可以在URL中使用API,但是并不起作用。我甚至不能使用这个"API网关域名"通过Postman来调用单个API。有人能告诉我该怎么做吗?如何配置Cloudfront以便调用各种API并在URL中使用它们的路由?