You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform创建Nutanix虚拟机无法绑定已有项目报错如何处理

报错根因

你遇到的422错误是因为project_reference参数放置的层级不符合当前使用的Nutanix Provider/Prism Central版本要求,API识别到了不支持的多余字段。

解决方案

  1. 首先添加项目数据源,避免手动填写UUID出错,将以下代码加入你的main.tf:
data "nutanix_project" "target_project" {
  project_name = "my_project"
}
  1. 调整project_reference的放置位置,不要直接写在nutanix_virtual_machine资源的根配置下,必须放到metadata块内部,修改后的VM资源配置示例如下:
resource "nutanix_virtual_machine" "vm1" {
    name                 = "test-${count.index+1}"
    count                = var.counter
    description          = "desc"
    num_vcpus_per_socket = 2
    num_sockets          = 2
    memory_size_mib      = 4096
    guest_customization_sysprep = {}
    cluster_uuid = "my_uuid"
    
    # 新增metadata块放置project_reference
    metadata {
      project_reference {
        kind = "project"
        uuid = data.nutanix_project.target_project.id
      }
    }

    nic_list {
        subnet_uuid = "my_uuid"
    }
  
    disk_list {
        data_source_reference = {
            kind = "image"
            uuid = data.nutanix_image.ubuntu-clone.id
        }
        device_properties {
            disk_address = {
                device_index = 0
                adapter_type = "SATA"
            }
        device_type = "DISK"
    }
    }
}
  1. 版本兼容性校验
    如果调整配置后仍然报错,确认两个依赖的版本符合要求:
  • Nutanix Provider版本升级到1.5.0及以上稳定版,修改配置后执行terraform init --upgrade完成升级
  • Prism Central版本不低于pc.2021.1,低于该版本的Prism Central v3.1 API不支持直接在VM创建时指定项目,需先创建VM再手动关联项目。

注:project_reference仅需填写kind和uuid两个字段即可,name为非必填项,多余字段可能触发API校验错误。

内容的提问来源于stack exchange,提问作者ben_m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:48:00