如何在Terraform中为列表元素配置生命周期前置条件验证?
Terraform中使用lifecycle precondition验证列表元素的正则匹配
完全可行,只需修改condition表达式,通过遍历列表元素并验证每个元素的正则匹配情况即可实现。
修改后的代码示例:
lifecycle { precondition { condition = alltrue([for v in each.value : can(regex("foo-bar-regex", v))]) error_message = "列表中存在不符合要求的元素:所有元素必须匹配正则表达式foo-bar-regex。" } }
代码说明:
- 使用
for表达式遍历each.value列表中的每个元素v,对每个元素执行can(regex("foo-bar-regex", v)),得到一个由布尔值组成的列表(每个元素对应原列表元素是否匹配正则)。 alltrue函数会检查布尔列表中的所有元素是否都为true,只有当列表中每一个元素都匹配正则时,condition才会返回true,precondition验证通过;只要有一个元素不匹配,就会触发错误提示。
内容的提问来源于stack exchange,提问作者iAmoric
相关产品推荐
相关产品推荐

