执行terraform plan时list函数调用失败报错问题咨询
Terraform执行plan时报list函数废弃错误解决方案
错误原因
该报错和你定义的admin_users变量无关,错误出在你引用的eks-cluster模块内部的outputs.tf文件:该模块使用了Terraform v0.12就已经废弃移除的list()函数,不符合当前你使用的Terraform版本的语法要求。
解决方案
- 方案1(直接修复语法)
找到路径.terraform/modules/eks-cluster/outputs.tf,将第3行的代码:
修改为:value = element(concat(aws_eks_cluster.this.*.id, list("")), 0)
用官方推荐的value = element(concat(aws_eks_cluster.this.*.id, tolist([""])), 0)tolist([""])语法替代废弃的list(""),二者实现的效果完全一致,都是生成包含单个空字符串的列表,保证concat后的结果至少有一个元素,避免element取索引0时报错。注意:如果后续执行
terraform init重新拉取模块,手动修改的内容会被覆盖,长期使用建议优先选择方案2。 - 方案2(推荐,升级模块版本)
如果你使用的是公开的第三方AWS EKS模块,直接将模块引用的版本升级到适配你当前Terraform版本的最新正式版即可,官方维护的EKS模块早已修复了该废弃语法问题。 - 方案3(不推荐)
降级你的Terraform CLI版本到v0.11及更早版本,可兼容旧的list()函数语法,但旧版本存在大量已知问题,不建议使用。
内容的提问来源于stack exchange,提问作者Gowmi
相关产品推荐
相关产品推荐

