Amazon web services 使用terraform在AWS中部署时出现R53问题
我在使用terraform部署时面临一个问题。错误是当route53初始化时,R53中已经有两个条目用于shs.int.eu.pp.cloud.abc.com 和shs.int.eu.pp.aws.cloud.abc.com分别作为公共和私人网站Amazon web services 使用terraform在AWS中部署时出现R53问题,amazon-web-services,terraform,terraform-provider-aws,Amazon Web Services,Terraform,Terraform Provider Aws,我在使用terraform部署时面临一个问题。错误是当route53初始化时,R53中已经有两个条目用于shs.int.eu.pp.cloud.abc.com 和shs.int.eu.pp.aws.cloud.abc.com分别作为公共和私人网站 Error: Error refreshing state: 1 error occurred: * data.aws_route53_zone.external_target: 1 error occurred: * data.aws_route53
Error: Error refreshing state: 1 error occurred:
* data.aws_route53_zone.external_target: 1 error occurred:
* data.aws_route53_zone.external_target: data.aws_route53_zone.external_target: multiple Route53Zone found please use vpc_id option to filter
这是路由脚本
resource "aws_route53_record" "www" {
zone_id = "${data.aws_route53_zone.external_target.zone_id}"
name = "gateway.${var.external_dns_target_zone}"
type = "A"
alias {
name = "${aws_elb.gateway.dns_name}"
zone_id = "${aws_elb.gateway.zone_id}"
evaluate_target_health = false
}
}
变量文件
environment = "int"
dns_target_zone = "shs.int.eu.pp.cloud.***.com"
external_dns_target_zone = "shs.int.eu.pp.aws.cloud.***.com"
static_ip_a = "11.222.**.80"
ami_owner = "246348377581"
ami_name_filter = "2020*ubuntu1804*"
instance_type = "t3a.small"
spread_deployment = true
replicas = 3
数据侦察
data "aws_vpc" "target" {
tags {
Environment = "${var.environment}"
OrgScope = "${var.org_scope}"
FunctionalScope = "${var.func_scope}"
}
}
data "aws_subnet" "application_a" {
filter {
name = "availability-zone"
values = ["${var.aws_region}a"]
}
tags {
Tier = "${var.tier}"
Environment = "${var.environment}"
OrgScope = "${var.org_scope}"
FunctionalScope = "${var.func_scope}"
}
}
data "aws_subnet_ids" "transfer" {
vpc_id = "${data.aws_vpc.target.id}"
tags {
Tier = "${var.tier}"
Environment = "${var.environment}"
OrgScope = "${var.org_scope}"
FunctionalScope = "${var.func_scope}"
}
}
data "aws_subnet" "transfer" {
count = "${length(data.aws_subnet_ids.transfer.ids)}"
id = "${data.aws_subnet_ids.transfer.ids[count.index]}"
}
data "aws_ami" "vw" {
most_recent = true
owners = ["${var.ami_owner}"]
filter {
name = "name"
values = ["${var.ami_name_filter}"]
}
}
data "aws_ssm_parameter" "bless_ca" {
name = "/proxy/bless-ca/${var.org_scope}-${var.func_scope}-${var.environment}"
}
data "aws_route53_zone" "target" {
name = "${var.dns_target_zone}"
private_zone = true
}
data "aws_route53_zone" "external_target" {
name = "${var.external_dns_target_zone}"
private_zone = false
}
我试着像这样在路由中添加vpc_id
resource "aws_route53_record" "www" {
zone_id = "${data.aws_route53_zone.external_target.zone_id}"
vpc_id = "${data.aws_vpc.target.id}"
name = "gateway.${var.external_dns_target_zone}"
type = "A"
alias {
name = "${aws_elb.gateway.dns_name}"
zone_id = "${aws_elb.gateway.zone_id}"
evaluate_target_health = false
}
}
我无法理解应在何处添加vpc过滤器需要将
vpc\u id
添加到数据“aws\u route53\u zone”“external\u target”
,而不是源“aws\u route53\u record”“www”
。