Terraform传递tags.severity == "warning"表达式报错,求正确写法
Terraform表达式正确写法及错误修复
你的代码存在两个关键问题,导致Terraform解析报错:
表达式字符串语法错误
你需要比较的是字符串值"warning",但当前写法中warning没有被引号包裹,会被当作标识符而非字符串,引发语法解析异常。资源引用格式错误
当Terraform资源名称包含连字符(如infra-warning)时,不能使用点语法(.)直接引用,必须改用索引语法["资源名"]来访问该资源属性。
修复后的完整代码如下:
rules { is_basic = false expression = "tags.severity == \"warning\"" # 或者使用方括号访问形式:expression = "tags[\"severity\"] == \"warning\"" route_to_id = escalation_policy["infra-warning"].id route_to_type = "escalationpolicy" }
额外注意事项:
- 字符串内的双引号需要用反斜杠
\转义,确保Terraform能正确解析表达式内容 - 保持代码缩进一致性(建议使用2或4个空格),避免因格式问题引发额外解析错误
内容的提问来源于stack exchange,提问作者Dhaval Shah
相关产品推荐
相关产品推荐

