terraform 缺少资源实例密钥

seb*_*ian 7 terraform

我不确定我做错了什么。我有这样的地形:

resource "aws_apigatewayv2_domain_name" "web" {
  domain_name = var.web_url
  count       = var.web_url != "" ? 1 : 0

  domain_name_configuration {
    certificate_arn = var.web_acm_arn
    endpoint_type   = "REGIONAL"
    security_policy = "TLS_1_2"
  }
}

resource "aws_apigatewayv2_api_mapping" "web" {
  api_id      = aws_apigatewayv2_api.web.id
  domain_name = aws_apigatewayv2_domain_name.web.id
  stage       = aws_apigatewayv2_stage.web_stage.id
  count       = var.web_url != "" ? 1 : 0
}
Run Code Online (Sandbox Code Playgroud)

我的地形计划返回了这个。它抱怨计数,但不确定如何处理它。


Terraform v0.12.24
Configuring remote state backend...
Initializing Terraform configuration...
2020/07/29 06:20:46 [DEBUG] Using modified User-Agent: Terraform/0.12.24 TFC/29e17ad841


Error: Missing resource instance key

  on ../modules/web/api.tf line 37, in resource "aws_apigatewayv2_api_mapping" "web":
  37:   domain_name = aws_apigatewayv2_domain_name.web.id

Because aws_apigatewayv2_domain_name.web has "count" set, its
attributes must be accessed on specific instances.

For example, to correlate with indices of a referring resource, use:
    aws_apigatewayv2_domain_name.web[count.index]
Run Code Online (Sandbox Code Playgroud)

帮助表示赞赏。

Mar*_*cin 10

正如错误消息所暗示的那样,由于您已经在 中使用countaws_apigatewayv2_domain_name,因此在引用它时现在应该使用 index。

例如:

domain_name = aws_apigatewayv2_domain_name.web[0].id
Run Code Online (Sandbox Code Playgroud)