如何解决私有 API 网关的自定义域?

Fil*_*dek 10 amazon-web-services amazon-vpc aws-api-gateway

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

此外,这里也回答类似的问题。

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

https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}
Run Code Online (Sandbox Code Playgroud)

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

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

小智 -3

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

高级步骤是:

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

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