模块对尚未创建的输入进行计数时出现 Terraform 错误

问题描述 投票:0回答:1

当模块内有一个计数条件正在检查输入值时,我收到错误。输入值取决于与模块一起创建的资源。

resource "aws_kms_key" "this" {
}


module "service_secret" {

  source = "./secret"

  name    = "foo-bar"
  kms_arn = aws_kms_key.this.arn
  tags    = {}
}

在模块中

secret
:

resource "aws_secretsmanager_secret" "this" {
  name                    = var.name
  kms_key_id              = var.kms_arn == "" ? aws_kms_key.this[0].arn : var.kms_arn

}

resource "aws_kms_key" "this" {
  count = var.kms_arn != "" ? 0 : 1
}

错误:

The "count" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predict how many instances will be created. To work around this, use the -target argument to first apply only the resources that the count depends on. count = var.kms_arn != "" ? 0 : 1

amazon-web-services terraform
1个回答
0
投票

没错。您不能让

count
for_each
依赖于应用级变量,例如
aws_kms_key.this.arn
。一切都必须在
plan
时知晓,这意味着您已经明确传递了您想要
count
工作的实例数量,或者使用 -target 首先创建
aws_kms_key.this
,然后再次运行代码以创建其他资源。

© www.soinside.com 2019 - 2024. All rights reserved.