Terraform 计算变量的长度
Terraform count length of variables
我们在 azure 内部有一个标准的命名约定,但是为了有时能够破例,必须能够在调用模块时自己提供一个名称
如何在 count 中指示应使用哪个变量 Var.Log 名称或 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
}
您实际上要查找的是循环。在循环中,您可以引用资源的名称,如果没有这样的资源可用,它不会创建它们,这似乎是您在提到 null
.
时试图指出的内容
这里有一篇很棒的 link 关于 terraform 中的循环,它彻底解释了不同类型的循环以及如何使用它们:https://blog.gruntwork.io/terraform-tips-tricks-loops-if-statements-and-gotchas-f739bbae55f9
我们在 azure 内部有一个标准的命名约定,但是为了有时能够破例,必须能够在调用模块时自己提供一个名称
如何在 count 中指示应使用哪个变量 Var.Log 名称或 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
}
您实际上要查找的是循环。在循环中,您可以引用资源的名称,如果没有这样的资源可用,它不会创建它们,这似乎是您在提到 null
.
这里有一篇很棒的 link 关于 terraform 中的循环,它彻底解释了不同类型的循环以及如何使用它们:https://blog.gruntwork.io/terraform-tips-tricks-loops-if-statements-and-gotchas-f739bbae55f9