aws_cloudwatch_log_metric_filter配置unit参数validate校验与文档冲突怎么办
问题根因
你遇到的报错不是配置语法错误,是AWS Provider版本不匹配导致的:unit参数是在 AWS Provider v3.34.0 版本才正式加入aws_cloudwatch_log_metric_filter资源的metric_transformation块的。如果你当前使用的 AWS Provider 版本低于 v3.34.0,就会触发参数不支持的校验错误。你看到的官方文档是对应高版本 Provider 的说明,和你实际运行的 Provider 版本不一致才会出现看起来冲突的情况。
解决方法
两种方案二选一即可:
- 如果你需要保留
unit参数:升级 AWS Provider 到 v3.34.0 及以上版本,在你的 Terraform 配置的 provider 声明块指定版本即可:
terraform { required_providers { aws = { source = "hashicorp/aws" version = ">= 3.34.0" } } }
修改后执行terraform init拉取对应版本的 Provider,再执行terraform validate就不会报错。
- 如果你暂时不想升级 Provider:直接删除
metric_transformation块里的unit = "Count"行即可。省略该参数时默认值就是None,不会影响你的错误计数统计逻辑,只是上报指标时不会附带单位字段,功能不受影响。
内容的提问来源于stack exchange,提问作者mikemaccana
相关产品推荐
相关产品推荐

