使用Terraform在Digital Ocean创建Droplet未归属指定项目的问题排查
问题原因及解决方法
你的Terraform代码仅分别创建了3个Droplet和NewProjectTest项目,但未建立Droplet与目标项目的关联关系。DigitalOcean会将未明确分配的资源自动归入默认项目或其他已有项目,这就是Droplet出现在错误项目中的原因。
要解决这个问题,需要添加digitalocean_project_resources资源,把Droplet关联到目标项目。修正后的完整代码如下:
resource "digitalocean_droplet" "web" { count = 3 image = "ubuntu-20-04-x64" name = "${count.index}" region = "lon1" size = "s-1vcpu-1gb" } resource "digitalocean_project" "NewProjectTest" { name = "NewProjectTest" description = "Description" purpose = "Description purposes" environment = "Development" } # 将所有Droplet关联到NewProjectTest项目 resource "digitalocean_project_resources" "web_association" { project_id = digitalocean_project.NewProjectTest.id resources = digitalocean_droplet.web[*].urn }
关键说明:
digitalocean_project_resources是DigitalOcean Terraform provider专门用于关联资源与项目的资源类型project_id直接引用Terraform创建的NewProjectTest项目IDresources通过digitalocean_droplet.web[*].urn批量获取3个Droplet的统一资源名称(URN),一次性完成关联
执行terraform apply后,新创建的Droplet就会正确归属到NewProjectTest项目中。
内容的提问来源于stack exchange,提问作者DevNoob
相关产品推荐
相关产品推荐

