首页 > 解决方案 > Terraform 将 VPC ID 动态添加到 Route53 区域

问题描述

我将使用这个Terraform 注册表模块来创建 VPC 私有托管区域。

我已经定义了我的父模块变量,如下所示,所以我可以使用变量取决于我的工作区来选择适当的区域属性,它工作得很好。

现在我想做的是,我想将VPC_ID从我的数据源输出 ( data.aws_vpc.this.id) 添加到资源块中,这样我就可以像 in 一样使用变量块domain2.my。原因是,如果我使用变量,我想硬编码 VPC ID ( Just like in domain1.my)。所以我需要避免硬编码的 VPC ID 并能够从数据源动态添加 VPC ID,并且还应该能够添加额外的 VPC ID,就像在domain3.my

任何人都可以帮助解决这个问题吗?谢谢!

变量.tf

variable "zone_name" {
  description = "Domain name of The Zone"
  default = {
    dev = {
      "domain1.my" = {
        comment = "DEV Private Hosted Zone"
        vpc = [
          {
            vpc_id = "xxxxx"
          }
        ]
      }
    }
    stg = {
      "domain2.my" = {
        comment = "STG Private Hosted Zone"
        vpc     = []
      }
    }
    uat = {
      "domain3.my" = {
        comment = "UAT Private Hosted Zone"
        vpc     = [
          {
            vpc_id = "VPC ID"
          },
          {
            vpc_id = "Another VPC ID"
          }
        ]
      }
    }
 }

主文件

#source = "../../../../tf-modules/aws/route53/zones/"
module "zones" {
  source  = "terraform-aws-modules/route53/aws//modules/zones"
  version = "~> 1.0"

  zones = var.zone_name[local.workspace]

  tags = {
    ManagedBy = "Terraform"
  }
}

data "aws_vpc" "this" {
  tags = {
    env = local.workspace
  }
}

标签: terraformterraform-provider-awsterraform0.12+

解决方案


推荐阅读