如何用Terraform为New Relic Workflow配置多个目标
解决方案:用Terraform动态块生成多目标Workflow
你可以通过Terraform的**动态块(dynamic block)**在单个Workflow资源内循环生成多个destination块,完美实现批量添加多个Slack频道作为目标的需求。
修改后的Workflow资源代码
resource "newrelic_workflow" "newrelic_workflow" { name = "my-workflow" muting_rules_handling = "NOTIFY_ALL_ISSUES" issues_filter { name = "Filter-name" type = "FILTER" predicate { attribute = "accumulations.policyName" operator = "EXACTLY_MATCHES" values = ["policy_name"] } } # 动态生成多个destination块 dynamic "destination" { # 遍历之前用for_each创建的所有通知频道资源 for_each = newrelic_notification_channel.notification_channel content { # 取当前遍历到的频道ID channel_id = destination.value.id } } }
关键说明
- 动态块核心逻辑:
dynamic "destination"告诉Terraform要动态生成destination类型的嵌套块 - 遍历资源集合:
for_each = newrelic_notification_channel.notification_channel遍历你之前创建的所有Slack通知频道(因为你用了for_each创建这些频道,所以这个资源是一个键值对集合,每个元素对应一个频道) - 引用频道ID:在
content块里,通过destination.value.id获取当前频道的ID,自动填充到每个destination块中
这样不管你var.channel_ids里有多少个频道ID,Terraform都会自动生成对应数量的destination块,实现单Workflow多目标的需求。
内容的提问来源于stack exchange,提问作者Dinesh
相关产品推荐
相关产品推荐

