如何在Terraform 0.11.15中条件配置AWS数据库实例备份参数?
解决方案
你可以利用Terraform的条件表达式结合null值实现需求:当db_backup_enabled为true时传入备份位置参数,为false时用null让Terraform自动忽略这个可选参数。
修改后的main.tf代码如下:
resource "aws_db_instance" "default" { backup_enabled = var.db_backup_enabled backup_location = var.db_backup_enabled ? var.db_backup_location : null }
补充说明
- 当
var.db_backup_enabled为true时,backup_location会被赋值为var.db_backup_location的实际值; - 当
var.db_backup_enabled为false时,backup_location被设为null,Terraform会自动跳过这个可选参数,不会将其传递给AWS API; - 若要避免启用备份时忘记传入
db_backup_location的问题,可以给该变量添加默认值和校验规则:
variable "db_backup_location" { type = string default = null validation { condition = var.db_backup_enabled ? (var.db_backup_location != null) : true error_message = "启用数据库备份时,必须指定db_backup_location参数。" } }
内容的提问来源于stack exchange,提问作者Blankman
相关产品推荐
相关产品推荐

