terraform config_error ai_generated true

错误:不支持的参数:此处不期望名为 "validation" 的参数。您是指 "validation" 吗?

Error: Unsupported argument: An argument named "validation" is not expected here. Did you mean "validation"?

ID: terraform/unsupported-argument-in-variable

其他格式: JSON · Markdown 中文 · English
88%修复率
85%置信度
1证据数
2023-06-20首次发现

版本兼容性

版本状态引入弃用备注
Terraform v0.12 active
Terraform v0.13 active
Terraform v1.0 active

根因分析

变量块包含对该变量类型无效的嵌套块或参数,通常是由于 Terraform 版本差异导致,其中变量验证是在 v0.13 中引入的。

English

A variable block contains a nested block or argument that is not valid for that variable type, often due to Terraform version differences where variable validation was introduced in v0.13.

generic

官方文档

https://developer.hashicorp.com/terraform/language/values/variables#custom-validation-rules

解决方案

  1. Update the required_version in terraform block: `terraform { required_version = ">= 0.13" }` then rerun `terraform init` to use a compatible Terraform version.
  2. Remove the unsupported argument (e.g., validation block) and implement validation using a separate data source or condition in a local value.
  3. If using Terraform v0.12, upgrade to v0.13+ using the official upgrade guide: https://developer.hashicorp.com/terraform/upgrade-guides/0-13.

无效尝试

常见但无效的做法:

  1. Renaming the argument to the suggested name without checking the Terraform version 90% 失败

    The error often occurs because the feature (e.g., variable validation) doesn't exist in older versions; renaming won't help if the underlying feature is unsupported.

  2. Moving the argument to a different block like locals or outputs 70% 失败

    Validation logic belongs to variable declarations; moving it elsewhere won't enforce input constraints and may cause runtime errors.

  3. Adding a required_providers block with a newer version but not updating the Terraform version constraint 85% 失败

    Variable validation is a language feature, not provider-specific; the Terraform core version must be >=0.13 for validation blocks to work.