【发布时间】:2021-10-14 03:39:01
【问题描述】:
我正在使用 AWS 提供商。我在 lifecycle_rule 块中添加了具有适当 days 和 storage_class 属性的事务块。除了这一变化,我还将expiry_days 从 30 增加到 180。
变量如下所示:
variable "bucket_details" {
type = map(object({
bucket_name = string
purpose = string
infrequent_transition_days = number
infrequent_transition_storage = string
archive_transition_days = number
archive_transition_storage = string
expiry_days = number
versioning = bool
}))
}
资源看起来像这样:(我已经删除了不相关的配置)
resource "aws_s3_bucket" "bucket-s3" {
for_each = var.bucket_details
bucket = "${each.key}-${var.region}-${var.environment}"
lifecycle_rule {
id = "clear"
enabled = true
transition {
days = each.value.infrequent_transition_days
storage_class = each.value.infrequent_transition_storage
}
transition {
days = each.value.archive_transition_days
storage_class = each.value.archive_transition_storage
}
expiration {
days = each.value.expiry_days
}
}
}
我已关注this transition example 以供参考。
当我运行transaction plan 时,我得到以下输出:
~ lifecycle_rule {
abort_incomplete_multipart_upload_days = 0
enabled = true
id = "clear"
tags = {}
+ expiration {
+ days = 180
}
- expiration {
- days = 30 -> null
- expired_object_delete_marker = false -> null
}
}
未列出任何过渡更改。可能是因为转换是 AWS 特有的,因此 Terraform 没有捕捉到它吗?
【问题讨论】:
标签: amazon-web-services amazon-s3 terraform