amazon-web-services - AWS RDS 数据库版本与 Terraform 版本不同

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

我正在学习如何使用 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 解决了这个问题,但仍然想首先了解错误发生的原因。

最佳答案

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

关于amazon-web-services - AWS RDS 数据库版本与 Terraform 版本不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66245653/

相关文章:

amazon-web-services - Terraform 从 S3 获取 json 数据

azure - 如何在terraform中使用azurerm_virtual_machine资源的custom_data字段?

google-cloud-platform - 无法使用 terraform 和 gcp 提供程序分配角色,但可以在 UI 中使用

linux - 如何检测linux机器上是否安装了tomcat和ant

iphone - 根据 iOS 版本启用不同的功能

python - 如何在 AWS Lambda 中最好地使用 Python 3 的 mimetypes 模块?

hadoop - pig 工作在Amazon EMR上被杀死。

php - 亚马逊 MWS 错误 SignatureDoesNotMatch

azure - 如何有条件地跳过使用 terraform 创建/实现的部分 terraform 资源

python - 不同版本python的问题