条件运算符适用于一个条件,但不适用于其他条件



我有一个使用计划,我打算根据变量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}"
值得按照

文档中所述的方式使用以下条件运算符 https://www.terraform.io/docs/configuration/interpolation.html 而不是仅仅使用布尔值 true 或 false 如果您使用"some_value"比较,它肯定会起作用。

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}"
  }
}

最新更新