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

Terraform配置AWS API Gateway v2绑定自定义域名报主机无法解析

故障原因

curl: (6) Could not resolve host 属于最基础的DNS解析失败错误,和你配的Lambda权限、API集成、ACM证书、API映射没有关系——你只完成了API Gateway侧的自定义域名资源配置,根本没给这个子域名加公网DNS解析记录,公网无法定位prod.mydomainname.com对应的服务地址。
你之前能通过默认base_url访问通,已经证明API Gateway、Lambda整条链路是正常的,问题只出在DNS环节。

修复操作
  • 先获取API Gateway为这个自定义域名分配的专属目标地址:
    两种方式都可以:要么登录AWS控制台进入API Gateway的「自定义域名」页面,找到prod.mydomainname.com条目,在端点配置里找REGIONAL类型对应的目标域名,格式一般为d-<随机字符串>.execute-api.<你的部署区域>.amazonaws.com;要么直接在Terraform里加输出项,取aws_apigatewayv2_domain_name.<你给该资源定义的命名>.domain_name_configuration[0].target_domain_name的值即可。

    不要错用API默认的阶段invoke_url,那个是直接访问阶段的地址,不是自定义域名的解析目标。

  • 进入你域名对应的DNS服务商后台(用Route53就找对应托管区,用第三方DNS就登录对应平台),给prod子域名添加解析记录:
    • 记录类型选CNAME
    • 主机记录填prod
    • 记录值填刚才拿到的API Gateway目标域名
    • TTL先设为60s,方便快速生效测试
      如果你用Route53做DNS,也可以直接创建别名A记录指向这个API Gateway自定义域名,能省掉CNAME的额外解析开销,效果一致。
  • 等待1-10分钟让DNS传播完成,先用nslookup prod.mydomainname.com或者dig prod.mydomainname.com验证,只要返回的解析结果是刚才配置的AWS域名,再发起curl请求就不会报找不到主机的错误。
避坑提醒
  • 不要手动查询API Gateway的IP填写A记录,AWS边缘节点IP是动态调整的,硬填IP过段时间就会失效,必须用CNAME/别名记录指向AWS分配的固定目标域名。
  • 你之前在EC2上可用的ACM证书只要满足「和API Gateway同区域、覆盖prod.mydomainname.com域名、状态为已签发」,等DNS通了之后TLS握手就会正常,不会出现证书报错。
  • 如果你用Cloudflare这类带代理功能的DNS服务,调试阶段先关闭代理走纯DNS转发,避免代理层返回的错误干扰排查,等服务调通后再开启代理功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:36:15