You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform数据源/资源块中引用Provider默认标签值

解决方案

你可以直接通过AWS Provider的导出属性引用default_tags中定义的标签值,不需要额外定义重复变量,也不需要通过其他数据源查询,引用路径为aws.default_tags.tags.<你的标签键名>。

你当前使用的4.19.0版本AWS Provider已经完整支持该特性,直接替换硬编码的环境值即可,修改后的完整配置如下:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "4.19.0"
    }
  }
  required_version = ">=1.2.3"
}

provider "aws" {
  default_tags {
    tags = {
      Environment = "dev"
      Application = "myapp"
      Terraform   = "true"
    }
  }
}

data "aws_iam_policy_document" "this" {
  statement {
    sid       = "S3BucketAccess"
    actions   = "s3:*"
    resources = [
      "${data.aws_s3_bucket.this.arn}/${aws.default_tags.tags.Environment}"
    ]
  }
}

data "aws_s3_bucket" "this" {
  bucket = "myBucket"
}

补充说明

  • 该引用方式是Provider原生支持的读取路径,不会产生额外的API请求,也不会出现标签值同步延迟的问题
  • 后续如果需要调整Environment标签值,只需要修改default_tags块中的配置,所有引用位置会自动同步更新,不需要逐处修改
  • 其他在default_tags中定义的标签(比如Application)也可以用同样的aws.default_tags.tags.Application路径直接引用

注意:如果你的配置中定义了多个带别名(alias)的AWS Provider,引用时需要加上对应别名,格式为aws.<别名>.default_tags.tags.Environment,无别名的默认Provider直接用aws.default_tags即可。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 08:39:10