簡體   English   中英

terraform aws_lb_listener_rule 條件爭論未在 terraform 0.12.20 中得到認可

[英]terraform aws_lb_listener_rule condition arguement not getting recognized in terraform 0.12.20

在 aws_lb_listener_rule 中收到此錯誤

錯誤:不支持的參數

在....\euc-terraformcontrol-alb\alb.tf 第 127 行,在資源“aws_alb_listener_rule”“alb_listener_rule”中:127:field =“${element(split(",", var.listener_rule_field), count.index )}"

此處不應使用名為“field”的參數。

錯誤:不支持的參數

在....\euc-terraformcontrol-alb\alb.tf 第 128 行,在資源“aws_alb_listener_rule”“alb_listener_rule”中:128:values = ["${element(split(",", var.listener_rule_value), count.指數)}”]

resource "aws_alb_listener_rule" "alb_listener_rule" {
  count              = "${length(compact(split(",", var.priority))) > 0 ? "${length(compact(split(",", var.priority)))}" : 0}"
  listener_arn       = "${var.listener_arn}"
  priority           = "${element(split(",", var.priority), count.index)}"
  action              {
    type             = "forward"
    target_group_arn = "${element(split(",", var.target_group_arn), count.index)}"
  }
  condition           {
    //field            = "${element(split(",", var.listener_rule_field), count.index)}"
    //values           = "${element(split(",", var.listener_rule_value), count.index)}"
  }
}

這是新版本中的重大更改

在舊版本中,我們可以使用以下代碼進行條件路由

 condition {
   field = "host-header"
   values = ["api.example.com"]
 }

將您的 Terraform 配置切換為使用host_headerpath_pattern配置塊

所以上面的條件就會變成

   condition {
    host_header {
      values = ["api.example.com"]
    }
  }

如果您在某些 CI/CD 平台上運行您的代碼,那么最好在配置中添加一個版本以避免將來出現此類問題並保持代碼兼容。

provider "aws" {
  version = "~> 2.31.0"
}

version meta-argumentprovider指定一個版本約束,並且與 required_providers 塊中的 version 參數的工作方式相同。 提供者配置中的版本約束僅在 required_providers 不包含該提供者的版本約束時使用。

/供應商veriosing

如此處所示,該fieldvalues在 aws 提供程序版本 2.x 中已棄用 在提供程序版本 3.x 中,它們被刪除並且不再有效,如條件塊的新文檔中所示。

這在官方的“Terraform AWS Provider Version 3 升級指南”中有進一步解釋:

因此,您要么必須遷移代碼以使用 aws provider 3.x 或 go 回到使用舊版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM