Невозможно добавить versioning_configuration для нескольких aws s3 в terraform версии 4.5.0

Попытка создать несколько корзин 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.
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш текущий код создает несколько корзин 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"
  }
}

Тогда используйте его там, я думаю? Ваш вопрос не ясен. Как бы вы использовали простое значение индекса подсчета, чтобы включить управление версиями?

Mark B 18.03.2022 21:06

Что делать, если мне нужно использовать переменную для versioning_configuration с индексом подсчета

Rounak Jain 18.03.2022 21:07

Пожалуйста, прекратите спамить нескольких людей уведомлениями, добавляя разные @ комментарии, а затем удаляя их. Если вы потратили это время на уточнение своего вопроса, вы могли бы получить ответ без необходимости спамить людей уведомлениями.

Mark B 18.03.2022 21:10

Другие вопросы по теме