You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CFT重部署时保持私有API Gateway ID固定不变

CloudFormation重部署API Gateway ID变更问题解决方案

API Gateway的ID是AWS自动生成的全局唯一标识,不支持用户手动指定固定值,不存在直接固定ID的方法,可通过以下几个方案解决问题:


方案1:避免CloudFormation触发API Gateway重建

API Gateway被删除重建,本质是CFT检测到资源需要执行替换操作,可通过以下配置阻止重建:

  • 保持AWS::ApiGateway::RestApi资源的逻辑ID固定,不要随意修改逻辑ID触发资源替换
  • 给AWS::ApiGateway::RestApi资源配置DeletionPolicy: Retain和UpdateReplacePolicy: Retain,即使CFT判定需要替换资源,也不会删除原有API,后续可将旧API导入CFT栈继续管理,不会生成新ID
  • 非必要不修改API Gateway的不可变属性(如端点配置类型、名称等),所有修改优先选择可更新无需替换的属性,从根源避免触发资源替换

方案2:绑定私有自定义域名(最推荐的运维方案)

该方案完全规避API ID变更的影响,访问地址永久固定:

  • 提前申请私有自定义域名,在区域内的ACM中申请对应域名的证书
  • 在API Gateway控制台创建私有自定义域名,关联对接用的VPCE,配置路径映射规则绑定到你的API和对应部署阶段
  • 在VPC内部署私有托管Zone,将自定义域名的A记录解析到VPCE的端点地址
  • 业务侧统一使用固定的自定义域名访问API,完全不需要感知底层API ID的变化
  • 后续即使API重建,只需要更新自定义域名的路径映射规则即可,无需修改任何业务侧配置

方案3:拆分资源栈管理,复用现有API

如果必须使用原生API ID访问,可拆分资源栈避免重建根API:

  • 将AWS::ApiGateway::RestApi根资源单独放在一个长期稳定的基础资源栈中,首次部署后将生成的API ID导出为栈输出
  • 业务部署栈仅管理API的集成、部署、阶段、权限等可动态更新的资源,通过Fn::ImportValue引用基础栈输出的API ID即可
  • 重部署业务栈时不会触及根API资源,自然不会生成新的API ID

注意:如果使用自定义域名方案,需要同步调整VPCE终端节点策略、API Gateway资源策略,放开对自定义域名的访问权限,避免出现权限类访问错误。


内容的提问来源于stack exchange,提问作者Chintamani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:15:05