首页 > 解决方案 > Terraform 变量的计数长度

问题描述

我们在 azure 中有一个标准的命名约定,但是为了有时能够产生异常,必须可以在调用模块时自己提供一个名称

如何在 count 中指示应该使用哪个变量 Var.Log Name 或 Local.ComponetName 以及我们如何将其传递给资源的名称

resource "azurerm_log_analytics_workspace" "LOG" {
  count               = length(var.LOG_Name) == "" ? length(local.ComponentNames) : null
  name                = var.LOG_Name[count.index] == "" ? local.ComponentNames[count.index] : null
  resource_group_name = element(var.resourcegroup_name[*], count.index)
  location            = var.location
  sku                 = var.LOG_Sku
  retention_in_days   = var.LOG_RetentionPeriod
}

标签: azureterraformazure-rm

解决方案


你真正要找的是循环。在循环中,您可以引用资源的名称,如果没有可用的此类资源,它将不会创建它们,这似乎是您在提及null.

这是关于 terraform 中循环的一个很好的链接,它彻底解释了不同类型的循环以及如何使用它们:https ://blog.gruntwork.io/terraform-tips-tricks-loops-if-statements-and-gotchas-f739bbae55f9


推荐阅读