【问题标题】:How are azure terraform variables applied for multiple tf files processed together?azure terraform 变量如何应用于多个 tf 文件一起处理?
【发布时间】:2019-10-02 13:21:47
【问题描述】:

对于 Azure Terraform:

如果在 tf 文件中声明了一个变量,该值是否会应用于一起处理的其他 tf 文件中的相同变量?变量语句为什么会有默认值?

如果我制作了一个 tfvars 文件: cidrs = [ "10.0.0.0/16", "10.1.0.0/16" ]

cidr 可以像下面那样用于子网 id 吗?没有真正理解使用语法? subnet_id = "${azurerm_subnet.subnet.id}" 子网 id = cidr

与变量一起使用时,“默认”函数究竟是什么?见下文:

    variable "prefix" {
         type = "string"
         default = "my"
 }

    variable "tags" {
         type = "map"
         default = {
            Environment = "Terraform GS"
            Dept = "Engineering"
   }
}

     variable "sku" {
         default = {
            westus = "16.04-LTS"
            eastus = "18.04-LTS"
    }
 }

【问题讨论】:

    标签: azure variables terraform-provider-azure


    【解决方案1】:

    这里有几个问题。最简单的:default:

    变量声明还可以包含默认参数。如果 目前,该变量被认为是可选的和默认的 如果在调用模块时未设置任何值,则将使用 value 或 运行 Terraform。默认参数需要一个文字值,并且 无法引用配置中的其他对象。

    其他问题可以参考这个例子:https://www.terraform.io/docs/providers/azurerm/r/subnet.html#attributes-reference

    所以简而言之,要使用现有的子网cidr,你需要这样引用它:

    azurerm_subnet.%subnetname%.address_prefix
    

    但是,子网名称不能等于 cidr,因为它不允许在名称中包含 /。你可以使用这样的东西:10.0.0.0-24

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      • 1970-01-01
      • 2021-04-01
      • 2017-09-09
      • 2018-03-25
      • 1970-01-01
      • 2013-10-25
      相关资源
      最近更新 更多