Terraform调用S3桶模块报Unsupported argument错误该如何解决?
Terraform S3模块replication_config参数不支持报错解决方案
Unsupported argument报错的核心含义是你调用的s3_bucket_module模块的1.0.0版本,没有对外暴露名为replication_config的输入参数,和你根目录有没有定义同名变量无关。你之前在项目根目录variables.tf添加replication_config变量的操作无效,因为该变量是根模块的输入变量,和第三方S3模块的入参没有任何关联。
解决步骤
- 第一步:确认依赖模块的实际参数定义
运行terraform get拉取所有依赖的远程模块到本地缓存,打开项目目录下的.terraform/modules/s3_bucket_module/variables.tf文件,检查是否存在replication_config变量的声明。 - 第二步:根据检查结果对应处理
- 若缓存的模块variables.tf中不存在该变量:
- 优先升级模块到最新版本,确认新版本是否已经支持replication配置参数
- 如果无法升级模块,可以fork原公共模块代码,自行添加
replication_config变量及对应的S3复制配置逻辑后,修改模块source指向你fork后的仓库地址即可
- 若缓存的模块variables.tf中存在该变量:
- 检查参数名拼写是否完全匹配,常见问题包括单复数错误(比如模块定义的是
replication_configs复数,你写的是单数)、大小写错误 - 清理本地缓存重试:删除项目下的
.terraform目录,重新运行terraform init拉取模块代码后再执行计划
- 检查参数名拼写是否完全匹配,常见问题包括单复数错误(比如模块定义的是
- 若缓存的模块variables.tf中不存在该变量:
- 额外注意:你引用的是远程公共模块时,本地修改任何第三方模块的配置文件都不会生效,Terraform会优先使用远程拉取的对应版本的模块代码。
内容的提问来源于stack exchange,提问作者user3150054
相关产品推荐
相关产品推荐

