Terraform 0.12:提供者产生的最终计划不一致

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

我有一个Terraform配置,它在应用阶段从aws_api_gateway_usage_plan资源使用计算值来创建local_file资源。

resource "aws_api_gateway_usage_plan" "api_plan" {
  name         = var.usage_plan_name

  api_stages {
    api_id = jsondecode(file("dev.json")).resources[1].rest_api_id
    stage  = "api"
  }

  # Have to wait for the API to be created before we can create the usage plan
  depends_on = [local_file.chalice_config]
}

如您所见,我阅读了dev.json,以确定api_id Terraform的需求。问题是,当我运行terraform apply时,描述为here的新安全检查会注意到api_id评估为的先前值已​​更改!

Provider produced inconsistent final plan: When expanding the plan for aws_api_gateway_usage_plan.api_plan
to include new values learned so far during apply, provider "aws" produced an invalid new value 
for .api_stages[0].api_id: was cty.StringVal("****"), but now cty.StringVal("****").

如该文档所述,解决此错误的正确方法是指定在plan阶段,此api_id实际上尚未为computed。问题是我不确定如何通过Terraform配置进行操作-我参考的文档是针对实际Terraform提供程序的作者的。]

查看GitHub上的问题,将初始值设置为null似乎不是这样做的合理方法。

有什么想法吗?我正在考虑降级到Terraform 0.11来解决此新的安全检查,但我希望在0.12中可以做到这一点。

提前感谢!

我有一个Terraform配置,该配置创建一个aws_api_gateway_usage_plan资源,并在应用阶段从local_file资源使用计算值。资源“ aws_api_gateway_usage_plan”“ ...

terraform terraform-provider-aws
1个回答
0
投票

[好吧,想了一会儿之后,我想到了一个愚蠢的解决方法,使我能够“欺骗” Terraform,使其认为api_id的值将在apply阶段进行计算,从而无视安全检查。

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