如果var为null或为空,如何跳过/忽略terraform中的特定模块

维沙尔·帕蒂尔

如果定义的变量为空或为空,是否有任何方法可以跳过terraform块/文件。而不是抛出错误。

我为天青创建了拖曳地形脚本。

  1. 对于天蓝色的自动化创建,请创建运行手册。
  2. 用于事件网格创建。

执行完第一步后,我必须手动生成一个Webhook URL(不存在用于Webhook生成的自动化支持)。生成webhook URL之后,我需要在第二个资源中对其进行定义。如果我定义了空/空或无效的URL,那么terraform将引发错误。

下面是terraform代码。

data "local_file" "runbook_script" {
  filename = "${path.module}/envent-grid-runbook.ps1"
}
resource "azurerm_automation_runbook" "runbook" {
  name                    = "event-gird-notification"
  location                = var.location
  resource_group_name     = var.resource_group_name
  automation_account_name = azurerm_automation_account.CreateAutomation.name
  log_verbose             = true
  log_progress            = true
  description             = "This runbook is creted for event grid notification"
  runbook_type            = "PowerShell"

  content = data.local_file.runbook_script.content
  publish_content_link {
    uri = ""
  }
}

resource "azurerm_eventgrid_event_subscription" "key-vault" {
  name  = "test"
  scope = "/subscriptions/xxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxx/name"
  topic_name = "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxx/vault"
  webhook_endpoint  {
        url = var.webhook_url
  }

  included_event_types = [
                                "Microsoft.KeyVault.SecretNewVersionCreated",
                                "Microsoft.KeyVault.SecretNearExpiry",
                                "Microsoft.KeyVault.SecretExpired"
                        ]
  event_delivery_schema = "EventGridSchema"

}

如果我为webhook ULR变量定义了null / empty var。然后低于错误。

Error: "webhook_endpoint.0.url": required field is not set

我创建了一个Jenkins作业,其中所有terraform代码都可以在一个作业中运行。如果代码失败,则整个作业都会失败。这就是为什么在var为空或null的情况下寻找一种跳过特定块/文件的解决方案的原因。

马辛

我假设您想azurerm_eventgrid_event_subscription基于var.webhook_url可以使整个资源成为可选的count

例如:

resource "azurerm_eventgrid_event_subscription" "key-vault" {

  count = var.webhook_url == "" ? 0 : 1

  name  = "test"
  scope = "/subscriptions/xxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxx/name"
  topic_name = "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxx/vault"

  webhook_endpoint" {
        url = var.webhook_url
  } 

  included_event_types = [
                                "Microsoft.KeyVault.SecretNewVersionCreated",
                                "Microsoft.KeyVault.SecretNearExpiry",
                                "Microsoft.KeyVault.SecretExpired"
                        ]
  event_delivery_schema = "EventGridSchema"

}

在上面的示例中,您可能需要根据var.webhook_url实际必须考虑哪些值正确或不正确来调整条件

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果在Spring Data JPA中为空或为空,如何跳过@Query中的@Param

如果Jquery中的值为null或为空,则分配0

如果列值是null或为空以在mysql表中搜索,则忽略列

如果值为null或为空,如何使用Apache Velocity模板生成自关闭XML元素

如果在获取过程中数据为Null或为空,则PHP Mysqli替换逗号

如果数据为空或为空,如何设置不显示?

Shell脚本-如果变量为null或为空,则退出脚本

React Native - 如果值为 null 或为空,则删除参数

如果为null或为空,则不要插入字段

如果它们为空,如何跳过文件中的行

如果GraphQL中的变量为null,如何跳过查询?

如果值为空,如何跳过逗号?

如何在PowerShell中检查字符串是否为null或为空?

如何在XSLT中检查变量是否为Null或为空?

如何在xhtml属性中检查日历值是否为null或为空

当数组为null或为空时如何抛出IllegalArgumentException?

如何检查IEnumerable是否为null或为空?

检查Room DB中的列是否为NULL或为空

检查函数中是否为NULL或为空?

CSVHELPER 在值为 null 或为空时有条件地忽略写入字段

如果为空[在php中],如何从检索中跳过图像字段?

如果PHP中的变量未定义,为空或为空,则显示“ N / A”

如果变量为空或为空,则在 RequestBody 中设置默认值

如果返回值为null或为空,则显示一些默认文本

Kotlin-“如果readLine()为null或为空,则指定默认值,否则解析readLine()”

如果为空,则跳过字段

如果为空则跳过记录

如果输入数组为空或在猫鼬聚合中不退出,如何跳过查询执行

如果MyBatis 3中where_in子句为空,如何跳过查询?