【问题标题】:AWS RDS Database Version is different than Terraform versionAWS RDS 数据库版本与 Terraform 版本不同
【发布时间】:2021-05-20 13:27:18
【问题描述】:

我正在学习如何使用 Terraform 来管理我的 AWS 基础设施。

星期一我根据 Terraform Apply 从头开始​​创建它。

星期二(第二天)我想用一些代码更改来更新我的应用程序(不会影响其余基础架构,只是我在 ECS 中的图像)并在我的 terraform 应用输出中收到此错误消息:

Error: Error modifying DB Instance foo-staging-db: InvalidParameterCombination: Cannot upgrade postgres from 11.8 to 11.4

当我仔细检查我的 terraform database.tf 时,我看到了这个:

resource "aws_db_instance" "main" {
  ...
  engine                  = "postgres"
  engine_version          = "11.4"
  ...
}

有人知道这里会发生什么吗?

  1. 这不是我第一次像这样更新我的数据库,因为我每个周末都会破坏我的基础设施以限制我的 AWS 成本。
  2. 我通过将 terraform Postgres 版本更改为 11.8 解决了该问题,但仍想了解错误发生的原因。

【问题讨论】:

  • RDS 有一个用于自动次要版本升级的标志。如果不受欢迎,请禁用它。
  • 如果你想保留自动化版本并且仍然有TF工作,你可以使用ignore_changes = "engine_version"
  • 哦,有趣,谢谢!有没有办法只忽略次要版本?如果不是,我可能更愿意禁用升级
  • 您应该能够仅指定主要版本作为引擎版本,然后 RDS 将自动应用“首选”次要版本。

标签: amazon-web-services terraform version amazon-rds


【解决方案1】:

AWS 使用 默认设置 auto_minor_version_upgrade=true 并尝试更新您的数据库。 您可以通过以下方式解决

方法一

使用 auto_minor_version_upgrade = false 将标志显式设置为 false

方法二

只使用版本号engine_version = "11"中的第一个八位字节

更多信息https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance#engine_version

【讨论】:

  • 编辑队列已满,但only first octet我很确定主版本不是八位字节?
猜你喜欢
  • 1970-01-01
  • 2020-07-16
  • 1970-01-01
  • 2020-11-24
  • 2016-05-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-30
  • 2016-03-11
相关资源
最近更新 更多