Sek*_*har 1 google-cloud-storage google-cloud-platform terraform terraform-provider-gcp
需要在 Google 云存储桶中创建多个文件夹。我知道可以创建存储桶,但不确定如何在同一个存储桶中创建多个文件夹。
我认为下面的代码适用于存储桶中的一个文件夹。
resource "google_storage_bucket" "storage_bucket" {
name = "my-test-bucket"
location = "us-east4"
project = "my-project"
}
resource "google_storage_bucket_object" "my_folder" {
name = "fold/"
bucket = "${google_storage_bucket.storage_bucket.name}"
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何对多个文件夹执行此操作?
更新以添加 raj S 答案中的内容。
您可以使用一组字符串 和for_each。像下面这样:
variable "folders" {
type = set(string)
default = []
}
resource "google_storage_bucket" "storage_bucket" {
name = "my-test-bucket"
location = "us-east4"
project = "my-project"
}
resource "google_storage_bucket_object" "folder" {
for_each = var.folders
name = each.key
bucket = google_storage_bucket.storage_bucket.name
content = "folder_content"
}
Run Code Online (Sandbox Code Playgroud)
然后是一个示例输入:
folders = [
"fold/",
"dir/",
...
]
Run Code Online (Sandbox Code Playgroud)
这将根据输入在存储桶中动态创建fold和文件夹。dir
如果您不需要使文件夹列表动态化(即对它们进行硬编码而不是变量输入),您也可以使用局部变量而不是变量。就像是:
locals {
folders = toset([
"fold/",
"dir/",
...
])
}
resource "google_storage_bucket" "storage_bucket" {
name = "my-test-bucket"
location = "us-east4"
project = "my-project"
}
resource "google_storage_bucket_object" "folder" {
for_each = local.folders
name = each.key
bucket = google_storage_bucket.storage_bucket.name
content = "folder_content"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1881 次 |
| 最近记录: |