- 
                Notifications
    You must be signed in to change notification settings 
- Fork 9.8k
Open
Labels
bugAddresses a defect in current functionality.Addresses a defect in current functionality.service/apprunnerIssues and PRs that pertain to the apprunner service.Issues and PRs that pertain to the apprunner service.service/route53Issues and PRs that pertain to the route53 service.Issues and PRs that pertain to the route53 service.
Description
Community Note
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
- Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment
Terraform CLI and Terraform AWS Provider Version
on darwin_amd64
+ provider registry.terraform.io/hashicorp/aws v4.3.0Affected Resource(s)
- aws_apprunner_custom_domain_association
Terraform Configuration Files
resource "aws_apprunner_custom_domain_association" "main" {
  domain_name          = "${local.domain_name}.${data.aws_route53_zone.main.name}"
  service_arn          = aws_apprunner_service.main.arn
  enable_www_subdomain = true
}
resource "aws_route53_record" "main-www" {
  name           = local.domain_name
  set_identifier = local.domain_name
  type    = "CNAME"
  zone_id = data.aws_route53_zone.main.zone_id
  ttl     = 300
  records = [aws_apprunner_service.main.service_url]
  weighted_routing_policy {
    weight = 90
  }
}
resource "aws_route53_record" "main-cert" {
  for_each = {
    for entry in aws_apprunner_custom_domain_association.main.certificate_validation_records : entry.name => {
      name   = entry.name
      record = entry.value
      type   = entry.type
    }
  }
  allow_overwrite = true
  zone_id         = data.aws_route53_zone.main.zone_id
  type            = each.value.type
  ttl             = 300
  name            = each.key
  records         = [each.value.record]
}Expected Behavior
The resource aws_route53_record.main-cert should be created properly. We should be able to iterate through aws_apprunner_custom_domain_association.main.certificate_validation_records dynamically.
Actual Behavior
│ Error: Invalid for_each argument
│ 
│   on modules/app_runner/main.tf line 94, in resource "aws_route53_record" "main-cert":
│   94:   for_each = {
│   95:     for entry in aws_apprunner_custom_domain_association.main.certificate_validation_records : entry.name => {
│   96:       name   = entry.name
│   97:       record = entry.value
│   98:       type   = entry.type
│   99:     }
│  100:   }
│     ├────────────────
│     │ aws_apprunner_custom_domain_association.main.certificate_validation_records is a set of object, known only after apply
│ 
│ The "for_each" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predict how many instances will be created. To work around this, use the -target argument to first apply only the resources that the
│ for_each depends on.
Steps to Reproduce
- terraform apply
bmariesan, vmignot, haakonmt, jritsema, Tailzip and 55 more
Metadata
Metadata
Assignees
Labels
bugAddresses a defect in current functionality.Addresses a defect in current functionality.service/apprunnerIssues and PRs that pertain to the apprunner service.Issues and PRs that pertain to the apprunner service.service/route53Issues and PRs that pertain to the route53 service.Issues and PRs that pertain to the route53 service.