【发布时间】:2019-12-21 04:24:25
【问题描述】:
我想创建带有版本控制的 GCS 存储桶。
我创建了子模块。
resource "google_storage_bucket" "cloud_storage" {
project = "${var.project}"
name = "${var.storage_name}"
location = "${var.location}"
storage_class = "${var.storage_class}"
versioning = "${var.versioning}"
}
根据 Terraform doc,我可以传递版本控制参数来配置版本控制。
我不知道 versioning 参数接受什么样的数据。我尝试传递 bool (true)、map 和 list 如下。
地图
variable "versioning" {
type = list
default = {
generation = true,
metageneration = true
}
}
列表
variable "versioning" {
type = list
default = [
"generation",
"metageneration"
]
description = "Enable versioning on Bucket"
}
我在阅读this GCP Doc后尝试了这个
错误 错误我得到它如下。
Error: Unsupported argument
on ../modules/storage/main.tf line 6, in resource "google_storage_bucket" "cloud_storage":
6: versioning = "${var.versioning}"
An argument named "versioning" is not expected here. Did you mean to define a
block of type "versioning"?
如果我不使用版本控制参数,该模块可以正常工作。但是,我想创建一个可以配置版本的模块。
如果我走错了方向,请告诉我。
任何帮助将不胜感激。
【问题讨论】:
-
metageneration来自哪里?您应该有一个versioning = { "enabled" = true }块,仅此而已。 -
我在阅读this 并猜测了版本控制的价值。感谢您的帮助。它适用于版本控制块 { enabled = true}。
-
使用 Terraform 文档来确定您应该使用哪些参数,而不是使用底层 API 文档。
-
我明白了。非常感谢。
标签: terraform terraform-provider-gcp