检查集群参数组是否存在,如果不存在则仅使用 terraform 创建
Check if cluster parameter group exists , if not then only create using terraform
要求 - 我想通过首先检查创建一个集群参数组,如果它已经存在(可能不是由 terraform 创建的),那么不要 运行 创建资源块。如果没有则只创建它。
第 1 期 - 我找不到数据源来获取现有的集群参数组。请帮助我。
2nd - 如果有任何更好的方法来实现此目的或是否存在任何其他问题,这些问题可能会在下面的代码中出现。
module "pg" {
count = 2
source = "./module/pg"
cluster_parameter_group = var.aurora_mysql[count.index].cluster_parameter_group
cluster_parameter_group_family = var.aurora_mysql[count.index].cluster_parameter_group_family
}
输入变量
在这里我给出了相同的输入变量,因此对于 aurora_mysql[0] 它将创建它,但是对于 aurora_mysql[1] 不应该尝试创建资源。
aurora_mysql = [
{
cluster_parameter_group = "aurora-mysql-cluster-parameter-group"
cluster_parameter_group_family = "aurora-mysql5.7"
},
{
cluster_parameter_group = "aurora-mysql-cluster-parameter-group"
cluster_parameter_group_family = "aurora-mysql5.7"
}
]
模块
data "block to fetch existing parameter group" {
}
resource "aws_rds_cluster_parameter_group" "pg" {
count = data.aws_rds_cluster_parameter_group.cpg.id != "" ? 1 : 0
name = var.cluster_parameter_group
family = var.cluster_parameter_group_family
description = "rds aurora mysql paramter group"
}
if it already exists
Terraform (TF) 没有任何内置工具来检查是否存在某些东西。这违反了 TF 工作原理。 TF的核心原则是,如果一个资源不被TF管理,那么它就不存在。同样在数据源方面,它们必须已经存在,因为没有中间地带可以存在也可以不存在。
话虽如此,有多种方法可以根据您的要求破解解决方案。也就是说,您可以创建自己的 External Data Source。由于这是您的自定义数据源,您可以将其设计为检查是否存在资源并 return true/false 到 TF 以供进一步使用。
要求 - 我想通过首先检查创建一个集群参数组,如果它已经存在(可能不是由 terraform 创建的),那么不要 运行 创建资源块。如果没有则只创建它。
第 1 期 - 我找不到数据源来获取现有的集群参数组。请帮助我。
2nd - 如果有任何更好的方法来实现此目的或是否存在任何其他问题,这些问题可能会在下面的代码中出现。
module "pg" {
count = 2
source = "./module/pg"
cluster_parameter_group = var.aurora_mysql[count.index].cluster_parameter_group
cluster_parameter_group_family = var.aurora_mysql[count.index].cluster_parameter_group_family
}
输入变量 在这里我给出了相同的输入变量,因此对于 aurora_mysql[0] 它将创建它,但是对于 aurora_mysql[1] 不应该尝试创建资源。
aurora_mysql = [
{
cluster_parameter_group = "aurora-mysql-cluster-parameter-group"
cluster_parameter_group_family = "aurora-mysql5.7"
},
{
cluster_parameter_group = "aurora-mysql-cluster-parameter-group"
cluster_parameter_group_family = "aurora-mysql5.7"
}
]
模块
data "block to fetch existing parameter group" {
}
resource "aws_rds_cluster_parameter_group" "pg" {
count = data.aws_rds_cluster_parameter_group.cpg.id != "" ? 1 : 0
name = var.cluster_parameter_group
family = var.cluster_parameter_group_family
description = "rds aurora mysql paramter group"
}
if it already exists
Terraform (TF) 没有任何内置工具来检查是否存在某些东西。这违反了 TF 工作原理。 TF的核心原则是,如果一个资源不被TF管理,那么它就不存在。同样在数据源方面,它们必须已经存在,因为没有中间地带可以存在也可以不存在。
话虽如此,有多种方法可以根据您的要求破解解决方案。也就是说,您可以创建自己的 External Data Source。由于这是您的自定义数据源,您可以将其设计为检查是否存在资源并 return true/false 到 TF 以供进一步使用。