Terraform 条件逻辑、零停机部署与常见问题解析
1. 条件逻辑实现方法
1.1 三元语法
最简单的条件逻辑实现方式是使用三元语法,以下是示例代码:
output "neo_cloudwatch_policy_arn" {
value = (
var.give_neo_cloudwatch_full_access
? aws_iam_user_policy_attachment.neo_cloudwatch_full_access[0].policy_arn
: aws_iam_user_policy_attachment.neo_cloudwatch_read_only[0].policy_arn
)
}
不过,这段代码比较脆弱。如果修改了 aws_iam_user_policy_attachment 资源 count 参数中的条件,可能会忘记更新输出变量中的条件,从而在访问可能不存在的数组元素时引发错误。
1.2 concat 和 one 函数组合
更安全的做法是使用 concat 和 one 函数。 concat 函数将两个或多个列表合并为一个列表, one 函数接受一个列表作为输入,如果列表有 0 个元素则返回 null ,有 1 个元素则返回该元素,有多个元素则报错。示例代码
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



