gpt4 book ai didi

azure - Terraform 12 中的动态数据源

转载 作者:行者123 更新时间:2023-12-03 02:34:54 26 4
gpt4 key购买 nike

我正在使用 Terraform 在 Azure 中创建警报 ( azurerm_monitor_scheduled_query_rules_alert )。您可以包含操作组列表(即您向其发送警报的组)。

在 TFVars 文件中,我将传入操作组名称列表的变量值。但是,警报模块需要资源的 ID,而不是名称。所以我有一个可以获取操作组信息的数据源。然后Alert资源就可以引用数据源来获取azure资源id。

如果我只有一个操作组,则此方法效果很好,但包含操作组名称的列表的大小可能会有所不同。我正在尝试弄清楚如何将所有操作组名称转换为 id 以供资源摄取。

resource "azurerm_monitor_scheduled_query_rules_alert" "tfTestAlertExample" {
for_each = {for alert in var.scheduled_query_alerts : alert.name => alert}

name = each.value["name"]
location = data.azurerm_resource_group.resource_group.location
resource_group_name = data.azurerm_resource_group.resource_group.name

action {

# --This part here. How do I get make this dynamic?--
action_group = [
data.azurerm_monitor_action_group.action_group.id
]

email_subject = each.value["email_subject"]
custom_webhook_payload = "{}"
}

data_source_id = ................ etc

因此,在上面的示例中,只有一个 action{} block ,但其中的 Action_group 列表需要是动态的,并且 ID 是从数据源检索的。或者也许还有另一种我没有考虑过的方法。

任何帮助将不胜感激。

最佳答案

如果您只想将操作组名称列表转换为其 Id,您可以这样做:

# declare the variables
variable "action_group_names" {
default = ["nancyAG1","nancyAG2"]
}

# retrieve the Id of action group
data "azurerm_monitor_action_group" "example" {
count = length(var.action_group_names)
resource_group_name = "existingRG"
name = element(var.action_group_names,count.index)
}

# output the result to the terminal
output "groups_id" {
value = data.azurerm_monitor_action_group.example[*].id

}

然后将 Id 传递给资源,如下所示:

resource "azurerm_monitor_scheduled_query_rules_alert" "example" {
name = format("%s-queryrule", var.prefix)
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name

action {
action_group = data.azurerm_monitor_action_group.example[*].id
email_subject = "Email Header"
custom_webhook_payload = "{}"
}

检查action_group Id。

enter image description here

关于azure - Terraform 12 中的动态数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63577385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com