#amazon-s3 #module #terraform #terraform-provider-aws #terraform-modules
#amazon-s3 #модуль #terraform #terraform-provider-aws #terraform-модули
Вопрос:
Я использую модуль terraform для создания сегментов s3, и унаследованный мной код использует список имен сегментов в качестве переменной и, по сути, перебирает переменную s3_bucket_names, создавая сегмент для каждого имени в списке.
Проблема возникает, когда мне нужно вызвать идентификатор из одного из этих созданных сегментов, чтобы настроить s3_notification_event для определенного сегмента. Я понимаю, если бы это было одно ведро или каждое ведро вызывалось индивидуально со своим собственным ресурсом модуля, я мог бы вернуть единый идентификатор с помощью module.aws_s3_bucket.data_bucket.например, вызов вывода идентификатора.
Я знаю, что могу переписать сценарий и вызвать модуль по отдельности, что решило бы проблему, но кто-нибудь знает, как возвращать значения определенного ресурса при циклическом просмотре одного модуля?
Для справки:
module "aws_s3_bucket" {
source = "****"
s3_bucket_names = var.s3_bucket_names
s3_bucket_acl = var.s3_bucket_acl
versioning = var.versioning
s3_log_target_bucket = var.s3_log_target_bucket
s3_log_prefix = var.s3_log_prefix
}
resource "aws_s3_bucket" "s3_bucket" {
for_each = var.s3_bucket_names
...
}
Спасибо за любой совет / понимание, которое кто-либо может предоставить.
Комментарии:
1. Каковы выходные данные вашего
aws_s3_bucket
модуля?2. Я не совсем уверен, что нужно указать, чтобы получить это значение. Я унаследовал следующий вывод: ` вывод «s3_bucket_names» {value = [«$ {module.aws_s3_bucket.s3_bucket_names}»] } ` Как упоминалось в первоначальном комментарии, если бы я вызывал модуль каждый раз для каждого сегмента, я мог бы вызывать конкретное значение, используя: ‘ вывод «s3_bucket_id»{ значение = [«$ {module.aws_s3_bucket.data_bucket.id }»] } `