有条件的运算符只能在一个条件下正常工作

时间:2019-02-02 15:17:30

标签: terraform

我有一个usageplan我打算建立或取决于其将具有的值的真/假可变mantanance_mode未创建。以下代码可以正常工作。

resource "aws_api_gateway_usage_plan" "usageplan" {
  name  = "${var.environment}-usage-plan"
  count = "${var.mantanance_mode == true ? 1 : 0}"

  api_stages {
    api_id = "${aws_api_gateway_rest_api.api_gateway.id}"
    stage  = "${aws_api_gateway_stage.api_gateway_stage.stage_name}"
  }
}

但是当我尝试以以下方式使用它时,它根本不起作用。

security_group_id = "${var.mantanance_mode == true ? aws_security_group.allow_ssh_from_office_sg.id : aws_security_group.lambda_sg.id}"

1 个答案:

答案 0 :(得分:0)

这是值得使用条件运算符以下列方式作为文件https://www.terraform.io/docs/configuration/interpolation.html,而不是如果你使用"some_value"比较它铁定工作只用布尔true或false描述。

security_group_id = "${var.mantanance_mode == "true" ? aws_security_group.allow_ssh_from_office_sg.id : aws_security_group.lambda_sg.id}"

resource "aws_api_gateway_usage_plan" "usageplan" {
  name  = "${var.environment}-usage-plan"
  count = "${var.mantanance_mode == "true" ? 1 : 0}"

  api_stages {
    api_id = "${aws_api_gateway_rest_api.api_gateway.id}"
    stage  = "${aws_api_gateway_stage.api_gateway_stage.stage_name}"
  }
}