условный оператор отлично работает с одним условием, но не с другим - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть план использования, который я намереваюсь либо создать, либо не создать в зависимости от переменной mantanance_mode, которая будет иметь значения true / false.Следующий код работает нормально.

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 голосов
/ 02 февраля 2019

стоит использовать условный оператор следующим образом, как описано в документации 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}"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...