【问题标题】:How to workaround custom domain for private API gateway?如何解决私有 API 网关的自定义域?
【发布时间】:2019-08-27 12:28:52
【问题描述】:

我知道 私有 API支持自定义域名。

另外,here 也回答了类似的问题。

与上面提到的丑陋url的问题不同,我的问题是私有dns的格式,如下:

https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}

问题主机名是动态的 - RestapiId 可以随时更改重新创建 CloudFormation 堆栈。当 CF 堆栈处于 rollback_complete 状态且无法更新时,此重新创建完成。然后我需要删除堆栈,再次创建它,并且所有使用我的 API 的客户端都需要更新主机名的 RestapiId 部分,这是不可接受的。上面提到的答案(使用代理服务器)也是不可接受的。也许解决方案可以在 CF 模板中手动设置 ApiGateway 资源的 id,但据我所知这是不可能的。

任何想法如何解决这个问题? 提前致谢。

【问题讨论】:

  • 你找到解决这个问题的方法了吗?
  • 很遗憾没有
  • cloudbanshee.com/blog/… 是我们这样做的方式。它有点工作,但如果你不想硬编码,你需要一个自定义资源才能让你的 alb 工作的 vpc id

标签: amazon-web-services aws-api-gateway amazon-vpc


【解决方案1】:

tmn4jq 链接的解决方案(以及评论中 add9 的类似解决方案)在我们的环境中对我有用。

据我了解,附加了您的域名的 SSL 证书的内部 ALB 或 NLB 能够充当代理,它将证书和匹配的域名与传入的请求相关联。

您使用 API Gateway 的“自定义域名”工具在该域名证书API Gateway之间建立连接。然后,您的 API 网关将接受来自具有预期域名的 ALB 的流量。

这是我之前在 cloudbanshee 上关注的文章的更新链接:https://www.sentiatechblog.com/connecting-to-a-private-api-gateway-over-vpn-or-vpc-peering

【讨论】:

    【解决方案2】:

    看起来这是一个解决方法。您可以创建一个以您的私有端点为目标的 ALB,并将自定义域定位到此 ALB。

    更多详情见这篇文章:https://medium.com/@george.mao/enabling-private-apis-with-custom-domain-names-aws-api-gateway-df1b62b0ba7c

    但它仍然有一些警告,对我来说看起来不太可靠。

    【讨论】:

      【解决方案3】:

      您可以创建从自定义域名到 API GW 的映射,作为同一 cloudformation 模板的一部分。

      高级步骤是:

      1. 在 API GW 上手动创建自定义域名。
      2. 创建用于创建 API GW 资源的 cloudformation 模板
      3. 创建一个 API GW 映射,将之前创建的自定义域映射到 作为 Cfn 模板的一部分创建的 API GW 资源。

      这允许 URL 保持不变,即使每个 Cloudformation 部署上的 restapi id 都发生变化。

      【讨论】:

      • 这适用于区域/边缘 API 而不是私有的。您仍然可以创建自定义域,甚至将其映射到您的 PRIVATE API,但它不起作用。顺便说一句,作者甚至将“私人”一词标记为粗体文本
      猜你喜欢
      • 2020-10-04
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 2016-07-27
      • 2018-06-26
      • 2018-06-09
      • 2018-07-10
      • 2019-07-24
      相关资源
      最近更新 更多