如果资源不是在Terraform中创建的,如何使用资源变量

如果资源不是在Terraform中创建的,如何使用资源变量,terraform,Terraform,我想通过添加变量create_kms_key启用或禁用带有客户管理密钥的加密RDS,但在未创建资源“aws_kms_key”时,始终会收到一个错误资源“aws_kms_key.ami kms key”找不到变量“aws_kms_key.ami kms key.arn” create_kms_key=false resource "aws_kms_key" "ami-kms-key" { count = "${var.create_kms_key ? 1 : 0}" description

我想通过添加变量
create_kms_key
启用或禁用带有客户管理密钥的加密RDS,但在未创建资源“aws_kms_key”时,始终会收到一个错误
资源“aws_kms_key.ami kms key”找不到变量“aws_kms_key.ami kms key.arn”

create_kms_key=false

resource "aws_kms_key" "ami-kms-key" {
  count = "${var.create_kms_key ? 1 : 0}"
  description = "ami-kms-key"
  enable_key_rotation = true
}

resource "aws_db_instance" "default" {
  allocated_storage    = 20
  storage_type         = "gp2"
  engine               = "mysql"
  engine_version       = "5.7.19"
  instance_class       = "db.t2.micro"
  name                 = "encrypteddb"
  username             = "admin"
  password             = "admin"
  storage_encrypted    = true
  kms_key_id           = "${aws_kms_key.ami-kms-key.arn}"
}
我试过
kms\u key\u id=“${var.create\u kms\u key?aws\u kms\u key.ami-kms-key.arn:”}”
但没有效果

我不想每次运行terraform时都创建kms密钥。 我希望根据
create\u kms\u key
变量使用默认kms/未加密的RDS或使用客户管理的密钥加密

如何跳过资源中的
kms\u key\u id


谢谢

如果您使用的是0.12,您可以修改尝试
kms\u key\u id=var.create\u kms\u key?aws_kms_key.ami-kms-key.arn:null
Matt,感谢您的评论,但我需要使用11版本,然后您必须声明两个资源:一个有kms,一个没有kms,每个资源中都有一个
count
,每个资源中的条件与另一个相反。