将现有资源导入 Terraform 状态文件时出错
Posted
技术标签:
【中文标题】将现有资源导入 Terraform 状态文件时出错【英文标题】:Error Importing existing resources into Terraform State File 【发布时间】:2019-05-25 18:54:08 【问题描述】:我正在尝试重构我的一些模块,这需要我将现有资源移动到不同的状态文件中。
通常导入资源是单调但简单的。
在尝试导入任何这些资源时,我不知道如何解释以下“路径段的数量不能被 2 整除”错误。 p>
这发生在我尝试导入的所有资源上(过去我已经成功完成了很多次)
CLI> terraform import azurerm_virtual_machine.east_mm01_vm /resource/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Compute/virtualMachines/stguemm01
Acquiring state lock. This may take a few moments...
azurerm_virtual_machine.east_mm01_vm: Importing from ID "/resource/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Compute/virtualMachines/stguemm01"...
azurerm_virtual_machine.east_mm01_vm: Import complete!
Imported azurerm_virtual_machine (ID: /resource/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Compute/virtualMachines/stguemm01)
azurerm_virtual_machine.east_mm01_vm: Refreshing state... (ID: /resource/subscriptions/XXX...soft.Compute/virtualMachines/stguemm01)
Error: azurerm_virtual_machine.east_mm01_vm (import id: /resource/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Compute/virtualMachines/stguemm01): 1 error(s) occurred:
* import azurerm_virtual_machine.east_mm01_vm result: /resource/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Compute/virtualMachines/stguemm01: azurerm_virtual_machine.east_mm01_vm: The number of path segments is not divisible by 2 in "resource/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Compute/virtualMachines/stguemm01"
地形版本:
CLI> terraform -v
Terraform v0.11.11
+ provider.azurerm v1.20.0
【问题讨论】:
【参考方案1】:您的资源 ID 错误 (/resource/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Compute/virtualMachines/stguemm01
)。应该是这样的:
/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Compute/virtualMachines/stguemm01
【讨论】:
奇怪,我可以发誓我试过了。您,先生(或女士),是我的英雄。这就是问题所在! 我遇到了同样的问题,我的行显示为The number of path segments is not divisible by 2 in "subscriptions/xxx.....
。所以,这个答案并没有真正帮助我。我不知道如何将其更改为/subscriptions...
。 v2.93.0 terraform
然后创建一个新问题
我做到了:***.com/questions/70808969/… 我可能也会赏金。以上是关于将现有资源导入 Terraform 状态文件时出错的主要内容,如果未能解决你的问题,请参考以下文章
Terraform:导入 aws 资源时出现凭证错误 - 调用 sts 时出错:GetCallerIdentity:ExpiredToken