【问题标题】:Azure terraform—Unclear about the format of variables used for parameters of a commandAzure terraform - 不清楚用于命令参数的变量格式
【发布时间】:2019-10-11 17:52:16
【问题描述】:

例如,当我创建一个资源组时,我想为其创建一个变量。格式是:“${var.name)”吗? location =“${var.location}”怎么样。还请提供有关如何格式化其他参数的文档。

我也想使用名称参数,但是要创建不同资源的名称,例如子网、网卡名称、iaas 名称...如何为不同的命令格式化名称参数变量?他们不能都是 var.name。

【问题讨论】:

  • 这在 Terraform 文档中都有解释。你是从阅读开始的吗?
  • 为什么参数的格式不一样?例如,对于资源组 (location = var.location),location = "${var.location}",还是 (location = azurerm_resource_group.main_rg.location)?哪个是对的?我查看了不同命令的参数,但是它们使用不同格式的参数?我之前看的文档只定义了参数,并不总是解释?
  • 为什么参数的格式如此不同?例如,对于资源组 (location = var.location),location = "${var.location}",还是 (location = azurerm_resource_group.main_rg.location)?哪个是对的?我查看了不同命令的参数,但是它们使用不同格式的参数?我以前看的文档只定义了参数,并不总是解释?我虽然变量被格式化为“${XXXXXXX.test.name}”或“${XXXXXXX.test.id}”或“${var.test}”。请解释我对文档的误解。
  • stackoverflow.com/questions/58242199/… 在这里我得到了一些示例,并且还注意到 azure terraform 不同命令的差异

标签: azure terraform-provider-azure


【解决方案1】:

在此处阅读文档https://www.terraform.io/docs/configuration/variables.html

您可以使用以下脚本来创建资源组、虚拟网络和子网:

我提供了cmets来帮助你更好的理解

以下适用于最新版本的 Terraform 0.12.x

ma​​in.tf

variable "name" {
  default = "kimdav111"
}

variable "location" {
  default = "West US 2"
}


resource "azurerm_resource_group" "main" {
  name     = var.name //This will be populated with default value of variable "name" ie "kimdav111"
  location = var.location //This will be populated with default value of variable "location" ie "West US 2"
}

resource "azurerm_virtual_network" "main" {
  name                = "${var.name}-network" //The will become "kimdav111-network"
  address_space       = ["10.0.0.0/16"]
  location            = "${azurerm_resource_group.main.location}"
  resource_group_name = "${azurerm_resource_group.main.name}"
}

resource "azurerm_subnet" "internal" {
  name                 = "internal"
  resource_group_name  = "${azurerm_resource_group.main.name}"
  virtual_network_name = "${azurerm_virtual_network.main.name}" //This takes the value from the above resource "azurerm_virtual_network" and will be populated with "kimdav111-network"
  address_prefix       = "10.0.2.0/24"
}

希望这说明清楚!

【讨论】:

    猜你喜欢
    • 2020-02-03
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-25
    相关资源
    最近更新 更多