首页 > 解决方案 > Terraform 从 v0.11 迁移到 v0.12 的标签问题

问题描述

我正在尝试将我的 terraform 计划从 v0.11 迁移到 v0.12 terraform 版本,当我执行验证时,我遇到了一些错误并出现相同的错误:“不支持的块类型”并且服务将问题标记为“ TAGS ”标签与该评论:

这里不需要“标签”类型的块。您的意思是定义参数“标签”吗?如果是这样,请使用等号为其赋值。

一个例子就是这个令人不安的资源:

resource "aws_vpc" "VPC" {
  cidr_block           = "10.0.0.0/24"
  enable_dns_hostnames = "true"
  enable_dns_support   = "true"

  tags {
    Name        = "${var.name}-VPC-Default"
    Environment = var.env
    Region      = var.region
  }
}

我阅读了有关支持标签类型“ TAGS ”的资源的文档,并阅读了它工作正常的 v0.11 版本。

关于我的问题有什么建议吗?

标签: terraform

解决方案


该错误解释了在 Terraform 0.12tags中不再是一个块,而是现在一个参数。Terraform 中的块如下所示:

block { ... }

这就是您的标签当前的显示方式。一个参数看起来像:

argument = value

因此,您需要将您的tags从块转换为参数。可以这样做:

tags = {
  Name        = "${var.name}-VPC-Default"
  Environment = var.env
  Region      = var.region
}

wheretags现在被分配了map您以前包含在块中的值。


推荐阅读