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

如何通过Terraform Data块获取API Gateway域名并配置Route53 CNAME

问题解决方法

1. 先确认数据源类型是否匹配你的API Gateway版本

  • 若自定义域名关联的是REST API/WebSocket API,用aws_api_gateway_domain_name数据源
  • 若关联的是HTTP API/HTTP v2 API,必须用aws_apigatewayv2_domain_name数据源(这是最容易踩的坑)

2. 使用正确的输出属性

根据你的自定义域名类型,选对应的属性:

  • Regional类型(关联域名格式为xxx.execute-api.<region>.amazonaws.com):用regional_domain_name属性
  • Edge-optimized类型(关联域名格式为xxx.cloudfront.net):用cloudfront_domain_name属性

示例代码

情况1:REST API的Regional自定义域名

# 获取未被Terraform管理的API Gateway自定义域名
data "aws_api_gateway_domain_name" "cdn_qa1" {
  domain_name = "cdn.qa1.example.com"
}

# 创建Route53 CNAME记录
resource "aws_route53_record" "cdn_qa1_cname" {
  zone_id = "YOUR_ROUTE53_ZONE_ID" # 替换成你的托管区ID
  name    = "cdn.qa1.example.com"
  type    = "CNAME"
  ttl     = 300
  records = [data.aws_api_gateway_domain_name.cdn_qa1.regional_domain_name]
}

情况2:HTTP API的自定义域名

# 获取HTTP API的自定义域名
data "aws_apigatewayv2_domain_name" "cdn_qa1" {
  domain_name = "cdn.qa1.example.com"
}

# 创建Route53 CNAME记录
resource "aws_route53_record" "cdn_qa1_cname" {
  zone_id = "YOUR_ROUTE53_ZONE_ID"
  name    = "cdn.qa1.example.com"
  type    = "CNAME"
  ttl     = 300
  records = [data.aws_apigatewayv2_domain_name.cdn_qa1.regional_domain_name]
}

3. 检查Terraform AWS Provider版本

不同版本的Provider可能调整过属性名,建议用最新稳定版:

  • 执行terraform providers查看当前版本
  • 若版本过旧,更新配置:
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0" # 替换为最新稳定版
    }
  }
}

4. 备选方案:直接用已知目标域名

既然你已经知道关联的API Gateway域名为ddd4qddddddda.execute-api.eu-west-1.amazonaws.com,可以跳过数据源直接写进记录:

resource "aws_route53_record" "cdn_qa1_cname" {
  zone_id = "YOUR_ROUTE53_ZONE_ID"
  name    = "cdn.qa1.example.com"
  type    = "CNAME"
  ttl     = 300
  records = ["ddd4qddddddda.execute-api.eu-west-1.amazonaws.com"]
}

内容的提问来源于stack exchange,提问作者Justine mathew Zacharias

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:08:14