首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在terraform版本4.0.0中为aws versioning_configuration s3添加动态块

无法在terraform版本4.0.0中为aws versioning_configuration s3添加动态块
EN

Stack Overflow用户
提问于 2022-02-17 14:50:05
回答 1查看 504关注 0票数 0

当试图为aws s3版本控制配置添加动态块时,需要使用错误'versioning_configuration‘参数。请找到下面的代码实例,并建议最佳答案。

代码语言:javascript
复制
resource "aws_s3_bucket_acl" "firehose_to_s3" {
bucket = aws_s3_bucket.firehose_to_s3.id
acl = "private"
}

resource "aws_s3_bucket_versioning" "firehose_to_s3" {
bucket = aws_s3_bucket.firehose_to_s3.id

dynamic "versioning_configuration" {
#value of replicate is false and true.
for_each = var.replicate ? ["yes"] : []
content {
status = "Enabled"
}

}
}

下面是我得到的参数"versioning_configuration“是必需的错误,但是没有找到任何定义。

EN

回答 1

Stack Overflow用户

发布于 2022-02-19 18:54:49

如果您的目标仅是基于布尔变量启用或禁用版本控制,则可以使用count进行操作。

代码语言:javascript
复制
resource "aws_s3_bucket_versioning" "firehose_to_s3" {
  count = var.replicate ? 1 : 0

  bucket = aws_s3_bucket.firehose_to_s3.id

  "versioning_configuration" {
    status = "Enabled"
  }
}

这是因为默认情况下不启用版本控制,因此在不需要资源时无法创建资源。

或者可以在status变量上添加一个条件,如

代码语言:javascript
复制
resource "aws_s3_bucket_versioning" "firehose_to_s3" {

  bucket = aws_s3_bucket.firehose_to_s3.id

  "versioning_configuration" {
    status =   var.replicate ? "Enabled" : "Suspended"
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71160327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档