【发布时间】:2020-11-18 02:58:45
【问题描述】:
如果我提出的问题很糟糕,请提前道歉,但如果我能在 linux vmss 的上下文中请求现场实例,我将不胜感激。
这是参考:https://www.terraform.io/docs/providers/azurerm/r/linux_virtual_machine_scale_set.html#identity
以及相关的部分:
这是他们的示例 json,没有任何指示可选参数的去向:
resource "azurerm_linux_virtual_machine_scale_set" "example" {
name = "example-vmss"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku = "Standard_F2"
instances = 1
admin_username = "adminuser"
admin_ssh_key {
username = "adminuser"
public_key = file("~/.ssh/id_rsa.pub")
}
source_image_reference {
publisher = "Canonical"
offer = "UbuntuServer"
sku = "16.04-LTS"
version = "latest"
}
os_disk {
storage_account_type = "Standard_LRS"
caching = "ReadWrite"
}
network_interface {
name = "example"
primary = true
ip_configuration {
name = "internal"
primary = true
subnet_id = azurerm_subnet.internal.id
}
}
}
我想将以下两行放在某处:
priority = var.spot_priority
eviction_policy = var.spot_eviction_policy
但是当我把它们放在顶层时,我得到了这个错误:
Error: expected priority to be one of [Low Regular], got Spot
(显然我在terraform.tfvars 中将其设置为“Spot”
我尝试将它们插入到不同的块中,但它们给了我意想不到的参数错误。
我在哪里告诉 terraform 我想要现场实例?
编辑:通过在 vmss 资源的顶层传入“Low”而不是“Spot”来解决问题。
【问题讨论】:
-
还有问题吗?它解决了你的问题吗?您可以免费获得有关此问题的更多帮助。
-
@CharlesXu 抱歉没有回复。我赞成你的回答,但事实证明,在我的 terraform 版本中,“低”与“点”是一样的。指定“低”而不是“点”效果很好。我有点密集。
-
我建议您使用最新版本。它具有更多功能并修复了一些不便之处。而这个版本目前比较合适。