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

CDK(TypeScript)中API Gateway绑定自定义域名后访问异常排查

API Gateway自定义域名绑定问题排查与解决方案

核心问题分析

你遇到的无响应/Forbidden问题,主要是因为自定义域名与API Gateway的关联配置不完整,或资源指向错误导致的。以下是具体排查点和修复方案:


1. 缺失自定义域名到API Stage的路径映射

你仅创建了自定义域名资源,但未将其映射到API的具体部署阶段(比如prod)。API Gateway需要明确的路径映射规则,才能将自定义域名的请求路由到你的API。

修复代码

在现有代码中添加BasePathMapping:

// 假设你的API实例是当前类的this对象,若不是则替换为实际的RestApi实例
domainName.addBasePathMapping(this, `${id}-mapping`, {
  basePath: '', // 空路径表示根域名直接映射到API
  stage: this.deploymentStage, // 替换为你的API部署阶段,比如this.prodStage
});

2. Route53 Alias目标指向错误

你代码中new ApiGateway(this)会创建一个新的空API实例,而非指向你原本能正常访问的那个API。这导致A记录指向了错误的资源,自然无法访问。

修复代码

传入你实际的API Gateway对象(比如你创建的RestApi实例):

// 假设你的API实例是const api = new RestApi(this, 'MyApi')
target: RecordTarget.fromAlias(new ApiGateway(api)),

3. 证书区域不匹配

API Gateway自定义域名依赖CloudFront,要求SSL证书必须部署在**us-east-1(弗吉尼亚北部)**区域,无论你的API位于哪个区域。如果证书在其他区域,会导致SSL握手失败,出现无响应。

检查与修复

  • 确认props.certificateArn对应的证书是在us-east-1区域创建的
  • 如果不是,重新在us-east-1申请证书,或导入现有证书到该区域

4. API Gateway资源策略限制

如果你的API配置了资源策略,可能拒绝了来自自定义域名或API Gateway原生域名的请求,导致返回Forbidden。

检查与修复

  • 进入API Gateway控制台,找到对应API的资源策略
  • 确认策略中未限制自定义域名(mysub.example.org)或API Gateway域名(d-ywfxof47wi.execute-api.us-east-1.amazonaws.com)的访问
  • 调整策略,添加允许这些域名请求的规则

5. DNS缓存或部署同步延迟

  • 用nslookup mysub.example.org检查DNS解析是否正确指向了API Gateway域名
  • 若解析异常,等待TTL过期(你设置了3分钟)或刷新本地DNS缓存
  • API Gateway域名映射配置需要同步到CloudFront,可能需要等待5-10分钟后再测试访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 14:55:20