【问题标题】:terraform import existing azure resourcesterraform 导入现有的 azure 资源
【发布时间】:2021-01-04 13:01:48
【问题描述】:

我想在 azure 中存在的现有 vnet 中创建子网。我找到了一个导入资源 terraform import 的命令。但是我如何使用资源详细信息示例:代码中的 vnet 资源组。

resource "azurerm_virtual_network" "vnet" {
  name                           = var.vnet_name
  address_space                  = var.vnet_address_space
  resource_group_name            = var.subscriptionrg_name
  location  }

我运行命令,发现我们之前提供的dns服务器现在被删除了。这是否意味着我必须在我的代码中定义所有内容并导入。或者有没有其他方法可以使用现有资源。

【问题讨论】:

  • terraform import .

标签: terraform terraform-provider-azure azure-rm


【解决方案1】:

首先像这样定义一个空块:

resource "azurerm_virtual_network" "vnet" {
}

然后,运行terraform import 命令将现有资源导入您的 Terraform 状态。然后,执行terraform show,将TF状态打印到屏幕上。最后,您可以将打印的"azurerm_virtual_network" "vnet"块的内容复制到.tf文件中的实际块中。

【讨论】:

  • 我来到 caross terraform 数据源。 terraform 导入与数据源有何不同。因为我只想在现有的 vnet 中创建一个子网,而这是通过导入或数据实现的最佳方式?
  • 嗨@Mitanshi,虽然data sources 的使用允许Terraform 配置使用在Terraform 之外定义的信息,但terraform import 命令将现有资源导入状态。
  • 所以在这种情况下,数据源用于我们必须只使用现有资源信息的场景,就像在我的情况下,我想使用在 terraform 和 cretae 子网之外使用 terraform 定义的现有 vnet。感谢@adp 真正澄清了。
猜你喜欢
  • 2018-05-06
  • 2020-04-29
  • 2021-05-25
  • 2020-08-27
  • 2020-04-30
  • 2021-10-08
  • 2020-01-23
  • 2021-04-17
  • 2023-01-02
相关资源
最近更新 更多