【发布时间】:2021-07-27 22:21:16
【问题描述】:
我的设置:
API 网关 - 10 个 API(api1、api2、...),全部映射到一个自定义域名 (api.xxx.com)
Route53 - api.xxx.com 指向我的 Cloudfront 分布
Cloudfront - 已创建发行版,将 api.xxx.com 设置为 CNAME
我需要知道的内容 - 我想将这个 Cloudfront 的 Origin 设置为这个自定义域名,这样我就可以调用像 api.xxx.com/api1/endpoint,api.xxx.com/api2/endpoint。但是怎么做?我使用我的 api.xxx.com 自定义域名 (xxxxxxx.execute-api.us-east-1.amazonaws.com) 的 API 网关名称作为默认行为来源名称,并假设对所有 10 个 API 的请求都将被正确路由,但它没有发生,
工作原理:我使用 api1 的 Invoke Url 创建了 Origin 名称并将其分配给 Default 行为。所以现在,当我调用“https://api.xxx.com/endpoint”时,会调用 api1。这是有道理的,但问题是 - 我需要将 API 的路径作为 URL 的一部分,例如“https://api.xxx.com/api1/endpoint”,以便区分它们.
什么不起作用:但我需要在分发中设置几个 API,以便我可以将它们称为“https://api.xxx.com/api1/endpoint”等。如果我使用调用 URL 作为 API 的源名称,我不能将此 API 名称也附加到返回 403 的 URL。我希望如果我使用“自定义域名”的“API 网关域名”(之后所有,它的格式为 xxxxx.execute-api.us-east-1.amazonaws.com),然后我可以在 URL 中使用 API,但这不起作用。我什至不能使用这个“API 网关域名”通过 Postman 调用单个 api。有人可以建议我怎么做吗?如何配置 Cloudfront 以便它可以调用各种 API 并在 URL 中使用它们的路由?
【问题讨论】:
标签: amazon-web-services aws-api-gateway amazon-cloudfront