我正在创建一个指向CloudFront分配并点击API网关 endpoints 的Route53 URL . 我让Terraform定义工作,所有部署都正确 . 但是,我需要向CloudFront分配添加标签 .
以下是相关的Terraform代码:
resource "aws_api_gateway_domain_name" "api-gateway-domain" {
domain_name = "${var.domain_name}"
certificate_arn = "${var.arn}
count = "${var.count}"
}
resource "aws_route53_record" "route53" {
zone_id = "${data.aws_route53_zone.route53-zone.zone_id}"
name = "${var.domain_name}"
type = "A"
alias {
name = "${aws_api_gateway_domain_name.api-gateway-domain.cloudfront_domain_name}"
zone_id = "${aws_api_gateway_domain_name.api-gateway-domain.cloudfront_zone_id}"
evaluate_target_health = true
}
count = "${var.count}"
}
我想知道我是否可以做类似 "${aws_api_gateway_domain_name.api-gateway-domain.cloudfront_domain_name.id.tags}" = { TAGS = "foobar" }
之类的事情 .
这可能吗?或者我是否必须手动设置CloudFront分配以将Route53 URL指向?
1 回答
你不能 .
API网关创建的CloudFront分配对您来说完全不可见;你无法看到它,也无法改变它 . 真的,事实上他们甚至告诉你's what it is and then give you some information such as the 934376 is incredibly confusing. It'与他们说"Instance store-backed AMIs are stored by S3"时的情况相同 - 但你没有任何访问实际S3对象的权限 .
此外,不 - 您不需要创建自己的CloudFront分配;但是,您应该能够将Route53记录指向显示在API网关的“自定义域名”部分中的CloudFront目标域名 .
route53_record和api_gateway_domain_name都不支持Tag块;可能是由于AWS不支持它们上的标签(我知道 - 很疯狂,考虑到AWS总是说你应该标记所有内容,但之后不提供选项) .
所以你只需要能够标记这些资源的SOL;不幸的是,这不是你最后一次遇到这个问题 .