如何在Terraform中实现变量数值的奇偶性校验?
Terraform 验证变量为偶数的实现方案
要验证变量是否为偶数,直接用Terraform内置的mod()函数就能搞定,要是想更严谨,还可以额外校验输入是整数(避免浮点数干扰)。
完整的变量定义代码如下:
variable "my_number" { type = number validation { # 先确保是整数,再判断是否为偶数 condition = can(floor(var.my_number)) && floor(var.my_number) == var.my_number && mod(var.my_number, 2) == 0 error_message = "Only even integers are accepted." } }
代码说明:
can(floor(var.my_number)) && floor(var.my_number) == var.my_number:确保输入的数值是整数,防止4.5这类浮点数被误判(虽然mod(4.5,2)结果是0.5,但提前拦截更稳妥)mod(var.my_number, 2) == 0:核心判断逻辑,数值对2取余等于0即为偶数
如果你的场景确定只会传入整数,也可以简化成下面这样:
variable "my_number" { type = number validation { condition = mod(var.my_number, 2) == 0 error_message = "Only even numbers are accepted." } }
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

