terraform - Terraform 无法创建 AWS Route53 记录,但我可以手动创建它吗?
问题描述
Terraform v0.12.x
我正在尝试使用此脚本创建一个 Route53 记录,该脚本旨在创建一个别名为 ALB 的 A 记录。
data "aws_route53_zone" "mycompany_com" {
name = "mycompany.com."
private_zone = true
}
resource "aws_route53_record" "jenkins_master_green" {
zone_id = data.aws_route53_zone.mycompany_com.zone_id
name = "jenkins-green.${data.aws_route53_zone.mycompany_com.name}"
type = "A"
alias {
name = aws_lb.jenkins_master_green.dns_name
zone_id = data.aws_route53_zone.mycompany_com.zone_id
evaluate_target_health = false
}
}
该计划显示了我期望的正确值
$ terraform plan -out out.output
但是当我申请我得到的计划时
$ terraform apply out.output
aws_route53_record.jenkins_master_green: Creating...
Error: [ERR]: Error building changeset: InvalidChangeBatch: [Tried to create an alias that targets <redacted>.us-east-1.elb.amazonaws.com., type A in zone <redacted>, but the alias target name does not lie within the target zone, Tried to create an alias that targets <redacted>.us-east-1.elb.amazonaws.com., type A in zone <redacted>, but that target was not found]
status code: 400, request id: 2cf7384d-fa16-4828-854b-ea3e56cc0754
如果我转到 AWS Route53 控制台,我可以创建记录。我错过了什么?
解决方案
尝试使用zone_id
来自aws_lb.jenkins_master_green
data "aws_route53_zone" "mycompany_com" {
name = "mycompany.com."
private_zone = true
}
resource "aws_route53_record" "jenkins_master_green" {
zone_id = data.aws_route53_zone.mycompany_com.zone_id
name = "jenkins-green.${data.aws_route53_zone.mycompany_com.name}"
type = "A"
alias {
name = aws_lb.jenkins_master_green.dns_name
zone_id = aws_lb.jenkins_master_green.zone_id
evaluate_target_health = false
}
}
推荐阅读
- java - 如何在 Java 中动态地将参数作为可变参数传递
- mongodb - 为什么 MongoDB Atlas 是唯一托管的 MongoDB 4+ DBaaS 提供商
- django-rest-framework - 重命名 Serializer.data 中的字段
- python - nbconvert: ValueError: No template sub-directory with name 'rst' found in the following paths: [LS OF PATHS]
- powershell - Powershell - 填充特定 OU 中的大型安全组中的 AD 用户列表
- r - R Web抓取网站的多个级别
- python - TypeError:__init__() 在癌症数据集中为参数“n_splits”获得了多个值
- java - 运行时重新加载环境变量
- java - 无法将 ObjectMessage 发送到 IBM MQ
- python - * 之后的 add() 参数必须是可迭代的,而不是 int