Terraform:给定的值对变量“backup_configuration”无效:需要属性“backup_retention_settings”

问题描述

我正在尝试使用 terraform 配置 Postgresql自动备份保留期。但是我无法传递 backup_retention_settings 的值,无论我提供什么值,我都会收到错误消息。

错误:输入变量的值无效

terraform.tfvars 第 3 行:3:backup_configuration = {
4:启用 = 真 5:开始时间
= "20:00" 6: location = null 7: point_in_time_recovery_enabled = false 8: 9: }

给定的值对变量“backup_configuration”无效: 属性“backup_retention_settings”是必需的。

这是我的 Main.tf 的代码

dynamic "backup_configuration" {
      for_each = [var.backup_configuration]
      content {
        binary_log_enabled             = false
        enabled                        = lookup(backup_configuration.value,"enabled",null)
        start_time                     = lookup(backup_configuration.value,"start_time",null)
        location                       = lookup(backup_configuration.value,"location",null)
        point_in_time_recovery_enabled = lookup(backup_configuration.value,"point_in_time_recovery_enabled",false)
        backup_retention_settings      = lookup(backup_configuration.value,"backup_retention_settings",null)
      }
    }

来自 varaiables.tf

variable "backup_configuration" {
  description = "The backup_configuration settings subblock for the database setings"
  type = object({
    enabled                        = bool
    start_time                     = string
    location                       = string
    point_in_time_recovery_enabled = bool
     backup_retention_settings = object({
      retained_backups = string
      retention_unit   = string
    })
  })
  default = {
    enabled                        = false
    start_time                     = null
    location                       = null
    point_in_time_recovery_enabled = false
    backup_retention_settings =  {
       retained_backups = "10"
      retention_unit   = "10"
    }
  }
}

你能帮我吗,我如何将值传递给保留设置。

这是我使用的 terraform 模板。 https://github.com/terraform-google-modules/terraform-google-sql-db/pull/203/commits/d6082b691742af62b217ae200bbc18895cc6dac0

解决方法

point_in_time_recovery_enabled 仅适用于 PostgreSQL

(可选)如果启用了时间点恢复,则为真。如果在创建实例后启用,将重新启动数据库。 仅对 PostgreSQL 实例有效