了解 ~ 和 - 之间的区别

时间:2021-03-27 22:22:00

标签: terraform

我正在将我们的一个 rds 实例导入到 terraform。

Terraform 计划显示 ~ 和 -

  ~ maintenance_window                    = "sat:06:10-sat:06:40" -> (known after apply)
  - max_allocated_storage                 = 0 -> null

这两个值都没有在配置中定义,我想了解它为什么显示 - 我们是否也在模块中配置空变量?

使用 Terraform 0.12.28

1 个答案:

答案 0 :(得分:2)

基本上:

  • ~ 值在状态中并且在计划之后正在改变
  • - 该值处于该状态并且您正尝试将其删除(null 值)

maintenance_window 显示 ~ 是因为它的值会发生变化,在您的特定情况下,它的值是计算出来的,因此在应用更改后就知道了。来自文档:

<块引用>

maintenance_window -(可选)执行维护的窗口。语法:“ddd:hh24:mi-ddd:hh24:mi”。例如:“周一:00:00-周一:03:00”。有关详细信息,请参阅 RDS 维护期文档。

如果该窗口适合您,您可以将其指定为参数或让 Terraform 将其更改为默认值。

max_allocated_storage 显示 - 是因为当您在状态中导入资源时,它导入了所有 Terraform 已知参数,但您没有指定该参数。特别是来自文档:

<块引用>

max_allocated_storage -(可选)配置后,Amazon RDS 可以自动扩展数据库实例存储的上限。配置此项将自动忽略与 allocation_storage 的差异。必须大于或等于 allocation_storage 或 0 才能禁用存储自动缩放。

在这种情况下,您可以设置 max_allocated_storage = 0 以便不显示该参数的计划中的任何更改