Terraform 使用版本控制创建GCS存储桶
我想创建具有版本控制的GCS bucket 我创建了子模块Terraform 使用版本控制创建GCS存储桶,terraform,terraform-provider-gcp,Terraform,Terraform Provider Gcp,我想创建具有版本控制的GCS bucket 我创建了子模块 resource "google_storage_bucket" "cloud_storage" { project = "${var.project}" name = "${var.storage_name}" location = "${var.location}" storage_class = "${var.storage_class}" versioning = "${var.versi
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,我可以传递版本控制参数来配置版本控制
我不知道版本控制参数接受哪种数据。我试着通过布尔(真),地图和列表如下
地图
variable "versioning" {
type = list
default = {
generation = true,
metageneration = true
}
}
列表
variable "versioning" {
type = list
default = [
"generation",
"metageneration"
]
description = "Enable versioning on Bucket"
}
我读完后就试过了
错误 错误我得到它如下
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}
块,仅此而已。谢谢你的帮助。它与版本控制块{enabled=true}一起工作。使用Terraform文档来确定应该使用哪些参数,而不是底层API文档。我明白了。非常感谢你。
resource "google_storage_bucket" "foo" {
...
versioning {
enabled = true
}
}
resource "google_storage_bucket" "foo" {
...
versioning = {
enabled = true
}
}