Terraform资源创建中this关键字的优势及使用问题咨询
Terraform 资源命名中
this的作用与优势 this并非HashiCorp官方定义的Terraform语法关键字,只是全球Terraform社区长期实践形成的通用命名惯例,尤其广泛用于单实例主资源的可复用模块中,相比自定义资源名有以下明确优势:
- 语义清晰无冗余:如果一个模块的核心功能就是创建单个某类资源(比如VPC模块只创建一个VPC),用
this命名该核心资源,不需要额外思考main_vpc、primary_vpc这类自定义名称,模块维护者和使用者一眼就能识别这是当前模块的核心主资源,和模块内其他辅助类资源(比如路由表、安全组等)区分度极高。 - 统一社区规范,降低使用成本:目前主流社区维护的通用Terraform模块都遵循这一命名规则,模块使用者不需要逐份阅读模块源码,就能默认推断出模块主资源的引用路径为
module.xxx.资源类型.this,不同模块的引用逻辑完全对齐,学习和适配成本极低。 - 大幅降低重构维护成本:只要模块的核心逻辑还是输出单个同类型主资源,
this的命名就不需要随业务场景调整。如果使用自定义命名(比如prod_vpc),后续模块需要适配测试、预发等其他场景时,自定义命名会出现语义不匹配,所有引用该资源的上游代码都要同步修改,维护成本极高。 - 简化书写成本:资源名仅需要在当前模块的作用域内保持唯一即可,
this长度短、辨识度高,日常开发书写和代码阅读的成本都远低于冗长的自定义命名。
该惯例仅适用于单实例主资源的场景,如果一个模块内需要创建多个同类型资源(比如同时创建3个VPC),就不能使用
this统一命名,需要按业务用途或者索引区分命名避免冲突。
内容的提问来源于stack exchange,提问作者cs1193
相关产品推荐
相关产品推荐

