0

我正在創建一個Route53 URL,指向CloudFront分配並擊中API網關端點。我得到了Terraform定義的工作和正確部署的一切。但是,我需要爲CloudFront分配添加標籤。是否可以更改Terraform API網關域名資源上的標籤信息?

下面是相關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指向?

+0

這是不是很清楚你想在這裏實現什麼。您的API網關前是否有Cloudfront發行版? API Gateway由Cloudfront支持,但創建API Gateway不會在您的AWS賬戶中創建Cloudfront分配資源。 – ydaetskcoR

+0

根據aws_api_gateway_domain_name資源上的Terraform文檔「內部API網關創建CloudFront分配以在給定主機名上路由請求。」 (https://www.terraform.io/docs/providers/aws/r/api_gateway_domain_name.html) 在AWS文檔上,「對於您創建的每個API,API Gateway都會爲該API設置Amazon CloudFront分配。」 (http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) Terraform使我可以通過api_gateway_domain_name訪問CloudFront分配'domain_name'和'zone_id' '。 –

回答

1

不,你不能。

API網關爲您創建的CloudFront分配是完全不可見;你無法看到它,沒有辦法改變它。真的,他們甚至告訴你,它是什麼,然後給你一些信息,如「目標域名」,是令人難以置信的混淆。這與他們說「實例存儲支持的AMI由S3存儲」相同 - 但您無權訪問實際的S3對象。

此外,不,您不需要創建您自己的CloudFront分配;但是,您應該能夠將Route53記錄指向顯示在API網關的「自定義域名」部分中的CloudFront目標域名。

route53_recordapi_gateway_domain_name都不支持標籤塊;可能是由於AWS不支持標籤(我知道這很瘋狂,考慮到AWS總是說你應該標記所有內容,但是不提供這個選項)。

所以你只是有點SOL能夠標記這些資源;這不會是你最後一次遇到這個不幸的事情。

相關問題