hit*_*126 2 azure terraform azureportal
我们在 Azure 中的 terraform 远程状态文件已被完全破坏,我们现在面临着从头开始重新创建状态文件的挑战。我的选择是使用 Terraform 导入命令,使用以下简单语法:
terraform import <Terraform Resource Name>.<Resource Label> <Azure Resource ID>
Run Code Online (Sandbox Code Playgroud)
例如,要导入现有资源组,我将在 main.tf 文件中创建以下配置。
provider "azurerm" {
version="1.39.0"
}
# create resource group
resource "azurerm_resource_group" "rg"{
name = "rg-terraform"
location = "uksouth"
}
Run Code Online (Sandbox Code Playgroud)
现在,我遇到的问题如下:
当现有的 Azure 资源最初创建时,它们被分配的名称使用了极其复杂的命名约定,有些字符甚至是随机生成的。更复杂的是,它们都是独一无二的,而且有数百个。如果为它们分配一个像“main”这样的简单名称(正如许多 Terraform 示例中常用的那样),那么一切都会很美好,但不幸的是,情况并非如此。
因此,我的问题是:
将我的 main.tf 配置文件放在一起以用于导入时,是否绝对要求我的“资源标签”(在导入命令中给出)必须与创建资源时的原始“资源标签”名称相匹配?
如果这是强制性要求,是否有任何方法可以从 Azure 检索原始“资源标签”,就像我可以从 Azure 门户甚至 Az CLI 查询获取“Azure 资源 ID”一样?
如何确保导入中包含任何子资源(例如子网),而无需手动通过 Azure 门户进行搜索来识别其中的每一项?
您是否完全确定当前状态文件已丢失?存储位置未版本化?开发人员是否仍然拥有状态文件的本地副本?
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |