【问题标题】:Terraform - Global Route 53 , Multiple EnvironmentsTerraform - 全球 53 号公路,多种环境
【发布时间】:2020-07-19 03:17:30
【问题描述】:

TL;DR 我有三个环境(开发、测试、生产)。我如何让它们都引用相同的 aws_route53_zone 并附加到它。

大家好,

我正在将 Terraform 用于辅助项目。在我的项目中,我有三个环境 dev、test、prod。所有三个组都将在同一个托管区域下。目标是拥有 test.foo.com、dev.foo.com 和 foo.com。

截至目前,我的目录结构如下:

Project Folder
  env
    |--dev
    |   |--dev-main.tf
    |   |--dev-backends.tf
    |   |--dev-output.tf
    |   |--dev-variables.tf
    |--test...
    |--prod...
  modules
  |--cognito
  |--s3
  |--iam

非常感谢任何有关在所有三种环境下引用同一区域的帮助。

【问题讨论】:

  • 您查看过aws_route53_zone 数据源吗?这不能达到你想要的吗?如果不能,您能解释一下您的用法缺少什么吗?

标签: terraform amazon-route53 globals


【解决方案1】:

我最终做的是创建另一个环境并将其命名为global

Project Folder
  env
    |---
    |--global
    |---
    |--dev
    |   |--dev-main.tf
    |   |--dev-backends.tf
    |   |--dev-output.tf
    |   |--dev-variables.tf
    |--test...
    |--prod...
  modules
  |--cognito
  |--s3
  |--iam

在那个环境中,我创建了我的顶级区域。在我的 dev/test/prod 环境中,我使用 terraform_remote_state 引用全局的输出。它看起来像这样:

File:dev-main.tf

data "terraform_remote_state" "global_route53" {
  backend = "s3"
  config = {
    bucket  = "my_global_output_bucket"
    key     = "StateLockID"
    region  = "us-east-2"
  }
}
....
module "acm" {
  zone_id = data.terraform_remote_state.global_route53.outputs.main_zone_id
}

希望这对遇到此问题的下一个人有所帮助。

【讨论】:

    猜你喜欢
    • 2012-08-26
    • 2017-12-28
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    相关资源
    最近更新 更多