使用Terraform在route53上获取托管域的zone_id

问题描述

您好,我正在使用Terraform创建route53记录,我已经有一个托管域(公共),可以说example.com如何获取其zone_id并将其附加到记录。如何获取现有route53托管区域的zone_id。我已经写了一个文件,但是它做了什么却创建了另一个托管区域example.com,而不是获取现有的example.com

resource "aws_route53_zone" "main" {
  name = "example.com"
}

resource "aws_route53_record" "www" {
  zone_id = data.aws_route53_zone.selected.zone_id 
  name    = "dev.${data.aws_route53_zone.selected.name}"
  type    = "A"
  alias {
    name                   = var.alb_dns
    zone_id                = var.zone_id
    evaluate_target_health = false
  }
}

解决方法

在terraform中,数据源可用于在运行时检索信息。 AWS提供程序包括用于route53区域的数据源。这是其用法示例:

data "aws_route53_zone" "selected" {
  name         = "test.com."
}

resource "aws_route53_record" "www" {
  zone_id = data.aws_route53_zone.selected.zone_id 
  name    = "dev.${data.aws_route53_zone.selected.name}"
  type    = "A"
  alias {
    name                   = var.alb_dns
    zone_id                = var.zone_id
    evaluate_target_health = false
  }
}
,

您还需要添加df.to_csv('averages.csv',mode='a',header=False)

private_zone = false
,

重新要求:

  • 我已经拥有托管区域(区域:AWS的全球区域)
  • 我想将$(teraform输出)托管区域ID进一步用于配置中

解决方案:

  1. 创建一个空资源:
resource "aws_route53_zone" "non-prod-zone" {}
  1. 导入资源
terraform import aws_route53_zone.non-prod-zone YOUR_HOSTED_ZONE_ID
  1. 用名称争论资源
resource "aws_route53_zone" "non-prod-zone" {
  name = var.non_prod_hosted_zone
}
  1. $(地形刷新)将输出变量?
Outputs:

hosted_zone_test_envs_id = YOUR_HOSTED_ZONE_ID

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...