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

如何在AWS CDK中为API Gateway V1预存自定义域名切换端点映射?

问题描述

尝试使用AWS Python CDK为已存在的自定义域名切换端点映射,实现API Gateway V1(REST类型)的蓝绿部署:先将blue.api.example.com对应的API网关映射到api.example.com,部署green.api.example.com对应的新API网关后,将映射切换为该新网关。

使用的CDK代码如下:

main_domain_name = apigw.DomainName(
            self, "construct-id", certificate=certificate, domain_name="api.example.com"
        )
main_domain_name.add_base_path_mapping(api_gateway) # api-gateway has domain_name e.g. blue.api.example.com

重新部署新栈时出现以下错误:

The stack named xxxx-xxxxx failed to deploy: UPDATE_ROLLBACK_COMPLETE: Resource handler returned message: "Base path already exists for this domain name (Service: ApiGateway, Status Code: 409, Request ID: XXX)" (RequestToken: XXXX, HandlerErrorCode: AlreadyExists)

曾尝试将映射传入DomainName构造函数,仍遇到相同问题。询问是否有原生CDK的解决方法,原本考虑通过自定义资源调用AWS SDK手动删除再添加映射,但更希望使用原生CDK实现。

解决方案(2024年1月更新)

已通过在CDK中使用自定义资源调用AWS SDK解决该问题。问题根源在于CDK和CloudFormation目前仅支持域名基础路径映射的「添加」操作,而AWS SDK和CLI支持「更新」「删除」操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:05:11