Terraform Import 从索引中删除报价

Jer*_*llo 5 terraform terraform-provider-azure

我正在尝试通过 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
Run Code Online (Sandbox Code Playgroud)

我读到其他线程说我必须转义引号,所以我这样做了。即使引号被转义,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
Run Code Online (Sandbox Code Playgroud)

这里有什么想法吗?我做错了什么还是这是应用程序的已知限制?

Cha*_* Xu 16

在PowerShell中,导入命令应该是这样的:

terraform import 'azurerm_subnet.test_subnets[\"test-subnet-1\"]' subnet_resource_id
Run Code Online (Sandbox Code Playgroud)

这里的屏幕截图显示了输出:

在此输入图像描述

但如果你在windows中使用cmd,你使用的命令也是对的。查看有关命令导入的更多详细信息。