amazon-web-services - 如何使用 Terraform 自动切换到 AWS 的 RDS 中的新参数组?
问题描述
为RDS设置一个新的参数组,其方案是
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
~ update in-place
- destroy
Terraform will perform the following actions:
# aws_db_parameter_group.this will be destroyed
- resource "aws_db_parameter_group" "this" {
- arn = "arn:aws:rds:us-east-1:12301923210921:pg:db-aurora-parameter-group" -> null
- description = "Parameter group for db Aurora Postgres instance" -> null
- family = "aurora-postgresql12" -> null
- id = "db-aurora-parameter-group" -> null
- name = "db-aurora-parameter-group" -> null
- tags = {
- "Application" = "myapp db"
- "Project" = "myproj"
- "Terraform" = "true"
} -> null
}
# aws_rds_cluster.this will be updated in-place
~ resource "aws_rds_cluster" "this" {
~ db_cluster_parameter_group_name = "db-aurora-cluster-parameter-group" -> (known after apply)
id = "db"
tags = {
"Application" = "myapp db"
"Project" = "myproj"
"Terraform" = "true"
}
# (31 unchanged attributes hidden)
}
# aws_rds_cluster_instance.this will be updated in-place
~ resource "aws_rds_cluster_instance" "this" {
~ db_parameter_group_name = "db-aurora-parameter-group" -> (known after apply)
id = "instance001"
tags = {
"Application" = "myapp db"
"Project" = "myproj"
"Terraform" = "true"
}
# (25 unchanged attributes hidden)
}
# aws_rds_cluster_parameter_group.this will be destroyed
- resource "aws_rds_cluster_parameter_group" "this" {
- arn = "arn:aws:rds:us-east-1:12301923210921:cluster-pg:db-aurora-cluster-parameter-group" -> null
- description = "Cluster parameter group for db Aurora Postgres instance" -> null
- family = "aurora-postgresql12" -> null
- id = "db-aurora-cluster-parameter-group" -> null
- name = "db-aurora-cluster-parameter-group" -> null
- tags = {
- "Application" = "myapp db"
- "Project" = "myproj"
- "Terraform" = "true"
} -> null
- parameter {
- apply_method = "immediate" -> null
- name = "log_lock_waits" -> null
- value = "1" -> null
}
- parameter {
- apply_method = "immediate" -> null
- name = "log_temp_files" -> null
- value = "0" -> null
}
- parameter {
- apply_method = "immediate" -> null
- name = "pgaudit.log_catalog" -> null
- value = "0" -> null
}
}
# module.aws_db_parameter_group.aws_db_parameter_group.this will be created
+ resource "aws_db_parameter_group" "this" {
+ arn = (known after apply)
+ description = "Parameter group for db Aurora Postgres instance"
+ family = "aurora-postgresql12"
+ id = (known after apply)
+ name = (known after apply)
+ name_prefix = "db-"
+ tags = {
+ "Application" = "myapp db"
+ "Name" = "db"
+ "Project" = "myproj"
+ "Terraform" = "true"
}
}
# module.aws_db_parameter_group.aws_rds_cluster_parameter_group.this will be created
+ resource "aws_rds_cluster_parameter_group" "this" {
+ arn = (known after apply)
+ description = "Cluster parameter group for db Aurora Postgres instance"
+ family = "aurora-postgresql12"
+ id = (known after apply)
+ name = (known after apply)
+ name_prefix = "db-"
+ tags = {
+ "Application" = "myapp db"
+ "Name" = "db"
+ "Project" = "myproj"
+ "Terraform" = "true"
}
+ parameter {
+ apply_method = "immediate"
+ name = "log_lock_waits"
+ value = "1"
}
+ parameter {
+ apply_method = "immediate"
+ name = "log_temp_files"
+ value = "0"
}
+ parameter {
+ apply_method = "pending-reboot"
+ name = "pgaudit.log_catalog"
+ value = "0"
}
}
Plan: 2 to add, 2 to change, 2 to destroy.
通过 terraform 应用后,它将删除旧参数组,但由于 AWS 规则不能。如果手动切换到 AWS 中的新组,则可以。
有没有办法使用 terraform 进行自动化?如果将来要添加新的参数组,最佳做法是什么?
解决方案
推荐阅读
- c - 使用 GCC 为原始汇编代码注入编译代码
- python - 困难物体的OpenCV物体检测
- apache-kafka - 删除 Apache kafka 中的主题消息
- javascript - Sending FormData from modal to parent component's method in react
- haskell - 坚持极小极大算法——下一步是什么?哈斯克尔
- r - 将每组的多行合并为一个,同时仅合并R中的一些列数据
- javascript - 使用 JavaScript 获得最后 3 个月
- asp.net-mvc - 实体框架在请求中生成类型
- blueprism - 我们可以从另一个进程的队列中选择项目吗?
- firebase - Axios 向 Firebase Auth REST API 发布请求产生 400 错误