如果资源不是在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
,每个资源中的条件与另一个相反。