我正在尝试通过 Terraform 从 Azure 导入状态并将状态保存到具有索引的资源中,例如:
terraform import azurerm_subnet.test_subnets[\"test-subnet-1\"] /subscriptions/xxxxxx-xxx-xxx-xxxxx/resourceGroups/test-rg/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/test-subnet-1
我读到其他线程说我必须转义引号,所以我做到了。即使引号被转义,Terraform 编译器似乎仍在提取引号并将 \
字符留在原处。
这是我看到的错误输出:
Error: Invalid character
on <import-address> line 1:
1: azurerm_subnet.test_subnets[\test-subnet-1\]
This character is not used within the language.
Error: Index value required
on <import-address> line 1:
1: azurerm_subnet.test_subnets[\test-subnet-1\]
Index brackets must contain either a literal number or a literal string.
Error: Invalid character
on <import-address> line 1:
1: azurerm_subnet.test_subnets[\test-subnet-1\]
This character is not used within the language.
For information on valid syntax, see:
https://www.terraform.io/docs/internals/resource-addressing.html
这里有什么想法吗?我是在做错什么还是这是应用程序的已知限制?
最佳答案
在 PowerShell 中,导入命令应该是这样的:
terraform import 'azurerm_subnet.test_subnets[\"test-subnet-1\"]' subnet_resource_id
此处的屏幕截图显示了输出:
但是如果你在windows下使用cmd,你用的命令也是对的。查看有关命令的更多详细信息 import .
关于Terraform Import 从索引中删除引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65524231/