Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 使用terraform在AWS中部署时出现R53问题_Amazon Web Services_Terraform_Terraform Provider Aws - Fatal编程技术网

Amazon web services 使用terraform在AWS中部署时出现R53问题

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

我在使用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_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”