0

Je crée une URL Route53 qui pointe vers une distribution CloudFront et atteint un point de terminaison API Gateway. J'ai eu les définitions Terraform pour fonctionner et tout s'est correctement déployé. Cependant, j'ai besoin d'ajouter des balises à la distribution CloudFront.Est-il possible de modifier les informations d'étiquette sur une ressource de nom de domaine Terraform API Gateway?

Voici le code Terraform concerné:

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}" 
} 

Je me demande si je peux faire quelque chose comme "${aws_api_gateway_domain_name.api-gateway-domain.cloudfront_domain_name.id.tags}" = { TAGS = "foobar" } ou quelque chose à cet effet.

Est-ce possible? Ou dois-je configurer manuellement une distribution CloudFront pour pointer mon URL Route53?

+0

Il n'est pas trop clair ce que vous essayez d'atteindre ici. Avez-vous une distribution Cloudfront en face de votre API Gateway? API Gateway est soutenu par Cloudfront de toute façon, mais la création d'une passerelle API ne crée pas de ressource de distribution Cloudfront dans votre compte AWS. – ydaetskcoR

+0

Selon la documentation Terraform sur la ressource aws_api_gateway_domain_name "Internal API Gateway crée une distribution CloudFront pour router les demandes sur le nom d'hôte donné." (https://www.terraform.io/docs/providers/aws/r/api_gateway_domain_name.html) Dans la documentation AWS, «pour chaque API que vous créez, API Gateway configure une distribution Amazon CloudFront pour l'API». (http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) Terraform me donne accès à la distribution CloudFront 'domain_name' et' zone_id' à travers le 'api_gateway_domain_name '. –

Répondre

1

Non, vous ne pouvez pas.

La distribution CloudFront que API Gateway crée est complètement invisible à vous; vous n'avez aucun moyen de le voir, aucun moyen de le modifier. Vraiment, le fait qu'ils vous disent même que c'est ce que c'est et puis vous donner quelques informations telles que le «nom de domaine cible» est incroyablement confus. C'est la même chose que quand ils disent que "les AMI soutenues par le magasin d'instance sont stockées par S3" - Mais vous n'avez aucun accès à l'objet S3 réel.

De même, non - vous n'aurez pas besoin de créer votre propre distribution CloudFront; Toutefois, vous devriez être en mesure de pointer votre enregistrement Route53 au nom de domaine cible CloudFront qui apparaît dans la section "Noms de domaine personnalisés" de la passerelle API.

Ni le route53_record ni le api_gateway_domain_name ne prennent en charge un bloc de variables; probablement dû au fait que AWS ne supporte pas les tags (ce que je sais - c'est fou, étant donné qu'AWS dit toujours que vous devriez tout étiqueter, mais ne donne pas l'option).

Donc, vous êtes juste un peu SOL en étant capable de marquer ces ressources; et ce ne sera pas la dernière fois que vous rencontrerez cela malheureusement.