Terraform导入Azure资源组报错及文件位置、根模块疑问
Terraform导入资源报错解决及相关疑问解答
报错原因及解决方法
你遇到的报错是因为Terraform在当前执行命令的根模块目录里没找到对应的资源配置,哪怕你建了import.tf,大概率是以下两个问题:
- 执行命令的路径错误:必须先切换到import.tf所在的文件夹,再执行import命令,否则Terraform读取不到这个配置文件。
- 命令里的引号多余:原命令给资源地址
azurerm_resource_group.example-rg加了引号,会导致Terraform识别错误,正确的命令应该是:
terraform import azurerm_resource_group.example-rg "/subscriptions/123456-789-123-1111-123/resourceGroups/existingrg"
(如果资源ID里没有特殊字符,后面的ID也可以不用引号)
另外确认你的import.tf内容没问题,资源块名称example-rg和命令里的azurerm_resource_group.example-rg完全匹配,这部分你已经做对了。
关于文件位置和根模块的疑问
- import.tf不需要和main.tf分开放:Terraform会自动加载当前目录下所有
.tf后缀的文件,不管文件名是main、import还是其他,都会合并成根模块的配置。 - 根模块不是某个特定文件:根模块指的是你执行Terraform命令时所在的目录,该目录下所有的.tf文件共同构成根模块,不存在“根模块是main.tf还是import.tf”的说法,两者只要在同一目录,都属于根模块的一部分。
内容的提问来源于stack exchange,提问作者itye1970
相关产品推荐
相关产品推荐

