Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform 如何将空/空值设置为模块中使用的可选字符串变量_Terraform_Terraform Provider Azure - Fatal编程技术网

Terraform 如何将空/空值设置为模块中使用的可选字符串变量

Terraform 如何将空/空值设置为模块中使用的可选字符串变量,terraform,terraform-provider-azure,Terraform,Terraform Provider Azure,我正在创建一个terraform配置(我们称之为配置a),它在另一个配置(配置B)中用作模块。 在配置A中,我有一个可选变量,它是逗号分隔的字符串(没有空格),包含CIDR形式的IP地址或IP地址范围。 我想要的是,如果配置B中没有IP作为输入,则跳过或不设置此变量的值。 我尝试将“”设置为值,但这当然不起作用。还尝试了其他值,但无法找到它 有没有办法让这项工作,或者我必须创建两个配置(我们称之为配置A.1和A.2),其中A.1包含字符串变量,A.2不包含 也许我试着做的一个示例代码能有所帮助

我正在创建一个terraform配置(我们称之为配置a),它在另一个配置(配置B)中用作模块。 在配置A中,我有一个可选变量,它是逗号分隔的字符串(没有空格),包含CIDR形式的IP地址或IP地址范围。 我想要的是,如果配置B中没有IP作为输入,则跳过或不设置此变量的值。 我尝试将“”设置为值,但这当然不起作用。还尝试了其他值,但无法找到它

有没有办法让这项工作,或者我必须创建两个配置(我们称之为配置A.1和A.2),其中A.1包含字符串变量,A.2不包含

也许我试着做的一个示例代码能有所帮助

#Config A
resource "azurerm_cosmosdb_account" "db" {
  name                = "${var.name_from_module_caller}"
  location            = "northeuropa"
  resource_group_name = "test-cosmos-db-from-terraform"
  offer_type = "Standard"
  consistency_policy  = {
    consistency_level = "Session"
  }
  geo_location        = {
  location            = "northeuropa"
    location          = "${azurerm_resource_group.rg.location}"
    failover_priority = 0
  }
  ip_range_filter     = "${var.whitelis_ip_from_module_caller}" #Need a way to skip this, if var.whitelis_ip_from_module_caller is "". Can't use ""
}

#Config B
module "test-cosmos-db" {
  source              = "/module/azure_cosmos_module" #This is the Config A
  name_from_module_caller = "test-cosmosdb"
  # whitelis_ip_from_module_caller //NOT SET, BECAUSE THIS MUST BE OPENED FOR EVERYONE
}

I

自terraform版本0.12起,有一个值。如果将此设置为模块输入变量中的默认值,则在实例化资源时,它将有效地忽略资源中的
ip\u range\u filter

如果将其设置为
,会出现什么错误?我得到的有关它的信息必须包含具有有效ip地址的字符串。在Git Hub for azurerm_cosmosdb_帐户资源上将此作为问题打开,现在有一个请求允许“”作为有效值。我想我只能等到这个补丁的新版本发布了。