Как создать несколько ресурсов в течение 1 oop с помощью Terraform? - PullRequest
0 голосов
/ 01 апреля 2020

Я просмотрел несколько фрагментов документации, а также курс по изучению терраформ, и я не понимаю, как делать то, что я хочу делать. Я хочу создать для l oop, и в нем я хочу создать уведомление о событии S3, создать Sns topi c, который прослушивает это уведомление, создать очередь Sqs и затем подписать очередь на sns topi * 1006. *. Кажется, что петли в terraform недостаточно продвинуты, чтобы сделать это. Я не прав, есть ли документация или примеры, которые объясняют, как использовать циклы для этого варианта использования?

Заранее спасибо.

1 Ответ

0 голосов
/ 02 апреля 2020

Пример создания AWS VP C подсетей с последующим предоставлением их AWS экземплярам EC2.

resource "aws_subnet" "public" {
  count = length(var.public_subnet_cidr_blocks)
  vpc_id     = var.vpc_id
  cidr_block = var.public_subnet_cidr_blocks[count.index]
}

resource "aws_instance" "public_ec2" {
  count = length(var.public_subnet_ids)
  subnet_id = var.public_subnet_ids[count.index]
  ami           = var.ami_id
  instance_type = "t2.micro"
  tags = {
    Name = "PublicEC2${count.index}}"
  }
  provisioner "local-exec" {
    command = <<EOF
echo "Public EC2 ${count.index} ID is ${self.id}"
EOF
  }
}

Нет синтаксиса, подобного приведенному ниже, для создания ресурсов.

[ for name in var.names:
 aws_s3_bucket {...} 
 aws_sns_topic {...}
]

Для выражения в основном для значений, а не для создания ресурсов.

  • для выражений

    A для выражения создает значение сложного типа путем преобразования другого комплекса введите значение.

Для создания нескольких ресурсов, как показано ниже в документе, используйте for_each или count.

...