Terraform Digitalocean:移动项目下的资源
我想在DigitalOcean上创建N个水滴,并将它们指定给DigitalOcean项目(该项目尚不存在) 首先,我创建一个项目,并使用Terraform Digitalocean:移动项目下的资源,terraform,digital-ocean,Terraform,Digital Ocean,我想在DigitalOcean上创建N个水滴,并将它们指定给DigitalOcean项目(该项目尚不存在) 首先,我创建一个项目,并使用资源项将水滴分配给该项目。我还创造了两个水滴 resource "digitalocean_project" "project" { name = "playground" count = "2" description = "Description" purpose = "Description purpose
资源
项将水滴分配给该项目。我还创造了两个水滴
resource "digitalocean_project" "project" {
name = "playground"
count = "2"
description = "Description"
purpose = "Description purposes"
environment = "Development"
resources = [
digitalocean_droplet.myserver[count.index].urn
]
}
resource "digitalocean_droplet" "myserver" {
count = "2"
name = "server-${count.index}"
image = "ubuntu-18-04-x64"
size = "1gb"
region = "${var.region}"
}
液滴成功生成。一个液滴移动到新创建的项目中,而另一个液滴保留在我的默认项目中
下面的错误消息很清楚。它尝试创建具有相同名称的第二个项目
错误:创建项目时出错:POST
:409名称已在使用中
(副本)
在资源“digitalocean\u项目”中的create_server.tf第1行
“项目”:1:资源“数字海洋”项目“项目”{
如何将这两个水滴分配给我的项目(我希望动态创建)?如果您希望一个项目具有多个资源,则只需创建一个项目并将资源列表分配给它。为此,您需要从
digitalocean\u项目
资源中删除count
参数(这将创建多个项目),然后使用digitalocean\u droplet
资源的
所以你想要的东西看起来有点像这样:
resource "digitalocean_project" "project" {
name = "playground"
description = "Description"
purpose = "Description purposes"
environment = "Development"
resources = digitalocean_droplet.myserver[*].urn
}
resource "digitalocean_droplet" "myserver" {
count = "2"
name = "server-${count.index}"
image = "ubuntu-18-04-x64"
size = "1gb"
region = var.region
}
如果您希望一个项目具有多个资源,则只需创建一个项目并为其分配资源列表。为此,您需要从
digitalocean\u项目
资源中删除count
参数(这将创建多个项目)然后使用digitalocean\u droplet
资源的
所以你想要的东西看起来有点像这样:
resource "digitalocean_project" "project" {
name = "playground"
description = "Description"
purpose = "Description purposes"
environment = "Development"
resources = digitalocean_droplet.myserver[*].urn
}
resource "digitalocean_droplet" "myserver" {
count = "2"
name = "server-${count.index}"
image = "ubuntu-18-04-x64"
size = "1gb"
region = var.region
}
我试过了,但它给了属性“resources”不合适的值:元素0:需要字符串。错误消息修复了它。我必须执行以下操作
resources=digitalocean\u droplet.myserver.*.urn
。如果您修改您的答案,我可以接受。因为这个想法来自您。德普,很抱歉,错过了。现在已修复。它应该是digitalocean\u droplet.myserver.*.urn
。否则不起作用。您能吗更新,以便我可以接受答案。我尝试过,但它为属性“resources”提供了不合适的值:元素0:需要字符串。错误消息修复了它。我必须执行以下操作resources=digitalocean\u droplet.myserver.*.urn
。如果您修改您的答案,我可以接受。因为这个想法来自您。德普,很抱歉,错过了。现在已修复。它应该是digitalocean\u droplet.myserver.*.urn
。否则不起作用。您能吗更新以便我可以接受答案。