Попытка создать несколько корзин AWS s3 с помощью Terraform с приведенным ниже кодом. Версия провайдера: 4.5.0
Пробовал без функции count
и с функцией for_each
тоже
resource "aws_s3_bucket" "public_bucket" {
count = "${length(var.public_bucket_names)}"
bucket = "${var.public_bucket_names[count.index]}"
# acceleration_status = var.public_bucket_acceleration
tags = {
ProjectName = "${var.project_name}"
Environment = "${var.env_suffix}"
}
}
resource "aws_s3_bucket_versioning" "public_bucket_versioning" {
bucket = aws_s3_bucket.public_bucket[count.index].id
versioning_configuration {
status = "Enabled"
}
}
Облицовка ниже ошибка
Error: Reference to "count" in non-counted context
│
│ on modules/S3-Public/s3-public.tf line 24, in resource "aws_s3_bucket_versioning" "public_bucket_versioning":
│ 24: bucket = aws_s3_bucket.public_bucket[count.index].id
│
│ The "count" object can only be used in "module", "resource", and "data" blocks, and only when the "count" argument is set.
Ваш текущий код создает несколько корзин S3, но пытается создать только одну конфигурацию управления версиями корзины. Вы ссылаетесь на переменную count
внутри ресурса управления версиями корзины, но еще не объявили атрибут count
для этого ресурса.
Вам нужно объявить count
в ресурсе управления версиями корзины, как вы сделали для ресурса корзины s3.
resource "aws_s3_bucket_versioning" "public_bucket_versioning" {
count = "${length(var.public_bucket_names)}"
bucket = aws_s3_bucket.public_bucket[count.index].id
versioning_configuration {
status = "Enabled"
}
}
Что делать, если мне нужно использовать переменную для versioning_configuration с индексом подсчета
Пожалуйста, прекратите спамить нескольких людей уведомлениями, добавляя разные @
комментарии, а затем удаляя их. Если вы потратили это время на уточнение своего вопроса, вы могли бы получить ответ без необходимости спамить людей уведомлениями.
Тогда используйте его там, я думаю? Ваш вопрос не ясен. Как бы вы использовали простое значение индекса подсчета, чтобы включить управление версиями?