我有一个terraform食谱,看起来要么挂了,要么试图异步地做很多事情,然后被绊倒。
这是主要代码:
resource "aws_elasticsearch_domain" "es" {
domain_name = "${var.es_domain}"
elasticsearch_version = "6.3"
cluster_config {
instance_type = "t2.medium.elasticsearch"
}
count = "${var.staff_count}"
vpc_options {
subnet_ids = [
"${aws_subnet.public_subnets.*.id[count.index]}"
]
security_group_ids = [
"${aws_security_group.es_sg.id}"
]
}
ebs_options {
ebs_enabled = true
volume_size = 10
}
access_policies = <<CONFIG
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "es:*",
"Principal": "*",
"Effect": "Allow",
"Resource": "arn:aws:es:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:domain/${var.es_domain}/*"
}
]
}
CONFIG
snapshot_options {
automated_snapshot_start_hour = 23
}
tags {
Domain = "${var.es_domain}"
}
}
这是“公共子网”代码:
resource "aws_subnet" "public_subnets" {
count = "${var.staff_count}"
cidr_block = "${cidrsubnet(var.vpc_cidr, 8, count.index)}"
vpc_id = "${aws_vpc.main.id}"
availability_zone = "${var.region}${var.az}"
tags = "${merge(map("Name", "${var.company_name}-staff-${count.index}-subnet")
, map("kubernetes.io/cluster/staff-${count.index}", "owned"))}"
}
这是我域的变量:
variable "es_domain" {
default = "my-es-domain"
description = "Domain name for elastic search."
}
我有一个staff_count变量,它是“ 8”
现在,我希望结果是运行此代码后,我将获得一个elasticSearch域,其中每个工作人员都拥有一个子网...
现在,这似乎不是正在发生的事情,我似乎陷入了一个无限循环(或某种竞赛条件?)的无限循环,持续了一个多小时,直到一切都超时了。
我收到一堆错误,看起来与下面的错误完全相同,但错误编号不同
* aws_elasticsearch_domain.es.3: "arn:aws:es:us-east-1:01043847838460:domain/my-es-domain": Timeout while waiting for the domain to be created
* module.init.aws_elasticsearch_domain.es[0]: 1 error(s) occurred:
好像它试图一次做很多次,对吧?如果是这样,我真的很喜欢如何修复它的指南,我是terraform的新手,并且对语法感到困惑。
答案 0 :(得分:0)
count = "${var.staff_count}"
这是您的多个集群的来源。 count 属性指示要制作的数量。