You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform使用aws_s3_bucket_logging资源时遇'Unsupported Block type'错误

问题解决:Terraform AWS Provider V4 S3日志配置错误

错误原因

你在独立的aws_s3_bucket_logging资源中嵌套了dynamic "logging"块,但该资源不支持这种嵌套块结构——旧版aws_s3_bucket资源内的logging嵌套块语法,不适用于独立的aws_s3_bucket_logging资源,这是导致Unsupported Block type错误的核心原因。

修复方案

无需修改现有locals.tf和variables.tf,直接调整aws_s3_bucket_logging资源的配置逻辑,利用for_each绑定local.logging数组来动态控制资源创建:

resource "aws_s3_bucket" "bucket" {
  bucket         = local.bucket_name
  tags           = local.tags
  force_destroy  = var.force_destroy
  hosted_zone_id = var.hosted_zone_id
}

resource "aws_s3_bucket_logging" "logging" {
  # 当local.logging为空数组时,该资源不会创建;有元素时按元素配置
  for_each = local.logging
  bucket   = aws_s3_bucket.bucket.id

  target_bucket = each.value["target_bucket"]
  target_prefix = each.value["target_prefix"]
}

补充说明

在Terraform AWS Provider V4版本中,aws_s3_bucket_logging资源的正确语法是直接在资源层级设置target_bucket和target_prefix参数,不需要任何嵌套块。原代码的错误在于沿用了旧版aws_s3_bucket内的配置习惯,混淆了不同资源的语法规则。

内容的提问来源于stack exchange,提问作者at356

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:20:30