Как создать несколько папок внутри существующего ведра с помощью terraform. пример: ведро / папка1 / папка2
resource "aws_s3_bucket_object" "folder1" {
bucket = "${aws_s3_bucket.b.id}"
acl = "private"
key = "Folder1/"
source = "/dev/null"
}





Примените ту же логику, что и при создании первого каталога.
resource "aws_s3_bucket_object" "folder1" {
bucket = "${aws_s3_bucket.b.id}"
acl = "private"
key = "Folder1/Folder2/"
source = "/dev/null"
}
Хотя ответ Нейта правильный, это привело бы к большому дублированию кода. На мой взгляд, лучшим решением было бы работать со списком и перебирать его.
Создайте переменную (файл variable.tf), содержащую список возможных папок:
variable "s3_folders" {
type = "list"
description = "The list of S3 folders to create"
default = ["folder1", "folder2", "folder3"]
}
Затем измените фрагмент кода, который у вас уже есть:
resource "aws_s3_bucket_object" "folders" {
count = "${length(var.s3_folders)}"
bucket = "${aws_s3_bucket.b.id}"
acl = "private"
key = "${var.s3_folders[count.index]}/"
source = "/dev/null"
}
Для пользователей Windows нет советов, но это должно сработать для вас.
Немного проще, чем использовать пустой файл в качестве «источника»
resource "aws_s3_bucket_object" "output_subdir" {
bucket = "${aws_s3_bucket.file_bucket.id}"
key = "output/"
content_type = "application/x-directory"
}
resource "aws_s3_bucket_object" "input_subdir" {
bucket = "${aws_s3_bucket.file_bucket.id}"
key = "input/"
content_type = "application/x-directory"
}