Terraform中cloudamqp_upgrade_rabbitmq参数不支持报错求助
解决CloudAMQP Terraform升级RabbitMQ版本时的参数不支持问题
问题原因
你遇到的Unsupported argument错误,核心原因是本地安装的CloudAMQP Terraform Provider版本与你参考的最新文档版本不匹配。cloudamqp_upgrade_rabbitmq资源的参数(如new_version)是在较新的Provider版本中才引入的,而你当前使用的Provider版本不支持这些参数。
解决方案
1. 查看当前Provider版本
执行以下命令,确认本地CloudAMQP Provider的版本:
terraform providers
2. 升级CloudAMQP Provider到最新稳定版
在你的Terraform配置文件中添加或更新required_providers块,指定最新版本的CloudAMQP Provider:
terraform { required_providers { cloudamqp = { source = "cloudamqp/cloudamqp" version = ">= 1.27.0" # 可替换为当前最新稳定版 } } }
执行升级命令:
terraform init -upgrade
3. 修正升级配置
升级Provider后,使用符合最新文档的配置即可正常运行:
自动升级到最新可升级版本
resource "cloudamqp_instance" "instance" { name = var.cloudamqp_instance_name plan = var.cloudamqp_instance_plan region = "amazon-web-services::us-east-2" nodes = var.cloudamqp_nodes } data "cloudamqp_upgradable_versions" "upgradable" { instance_id = cloudamqp_instance.instance.id } resource "cloudamqp_upgrade_rabbitmq" "upgrade" { instance_id = cloudamqp_instance.instance.id new_version = data.cloudamqp_upgradable_versions.upgradable.new_rabbitmq_version }
指定具体版本升级
resource "cloudamqp_instance" "instance" { name = var.cloudamqp_instance_name plan = var.cloudamqp_instance_plan region = "amazon-web-services::us-east-2" nodes = var.cloudamqp_nodes } resource "cloudamqp_upgrade_rabbitmq" "upgrade" { instance_id = cloudamqp_instance.instance.id new_version = "4.0.9" }
备选方案(针对无法升级Provider的场景)
如果因环境限制无法升级Provider,需查看你当前Provider版本对应的文档,确认cloudamqp_upgrade_rabbitmq资源的正确参数名。例如,部分旧版本使用version而非new_version,且不需要current_version参数。
内容的提问来源于stack exchange,提问作者Ivan Karotki
相关产品推荐
相关产品推荐

