【问题标题】:Terraform plan outputs incorrect resultsTerraform 计划输出不正确的结果
【发布时间】:2018-09-06 10:15:18
【问题描述】:

Terraform plan 输出奇怪的结果。对于每个负载均衡器,它都会输出

~ module.api-origin-demo-prod.aws_alb.origin-alb
  enable_cross_zone_load_balancing:         "" => "false"
  enable_http2:                             "" => "true"

据我了解,跨区域负载均衡是 AWS 经典负载均衡器的一项功能,而不是我们使用的应用程序负载均衡器 (ALB)。 HTTP2 设置也很奇怪,因为它已在 AWS 控制台中启用,因此 Terraform 应该选择的设置没有“更改”。谢谢!

【问题讨论】:

  • 您最近升级过 AWS 提供商吗?在这种情况下,Terraform 将使用默认值回填其状态文件,但实际上并没有发生任何变化,因为无论如何它们几乎肯定会成为该 AWS 资源的默认值(这里就是这种情况)

标签: amazon-web-services amazon-ec2 terraform


【解决方案1】:

aws_alb aka aws_lb 基于 load_balancer_type 参数的设置实现 ALB 和网络负载均衡器。 enable_cross_zone_load_balancing 仅适用于网络负载均衡器。

您可以尝试terraform show 来查看这些属性的当前状态。如果在 AWS 的控制台或其他工具中修改基础设施,则 terraform 的状态可能会偏离现实。如果您不使用远程状态,即使仅使用 terraform 也可能存在分歧。

如果确实有问题,您可以启用调试日志并搜索 ALB 的相关 API 调用,看看它如何认为有变化:

TF_LOG=DEBUG terraform plan

【讨论】:

    【解决方案2】:

    我建议将您的终端环境变量设置为 Debug,这样您就可以看到幕后发生的事情。

    要在终端中执行此操作,假设您已经安装了 terraform

    做:export TF_LOG="DEBUG" 这应该足以为您提供输出并调试您的后续步骤。

    【讨论】:

      猜你喜欢
      • 2019-08-09
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 2021-07-29
      • 2018-02-10
      相关资源
      最近更新 更多