Terraform代码里format("%s-%s",)函数的作用是什么?
Terraform
format("%s-%s",) 用法说明 这行代码app_resourcegroup_name = format("%s-%s", module.env_vars.resourcegroup_prefix, "app")的核心是调用Terraform内置字符串格式化函数拼接资源组名称,具体逻辑如下:
format()是Terraform内置的字符串处理函数,作用是按照指定模板规则拼接生成目标字符串,逻辑和多数编程语言的格式化字符串函数一致- 函数第一个入参
"%s-%s"是格式化模板:- 模板内的
%s是字符串类型占位符,会按照先后顺序被后续传入的实际参数值替换 - 两个占位符中间的
-是固定拼接的连接符
- 模板内的
- 模板后传入的两个参数按顺序匹配占位符:
- 第一个参数
module.env_vars.resourcegroup_prefix是环境变量模块输出的资源组统一命名前缀 - 第二个参数
"app"是固定标识字符串,用来标记该资源组为应用服务所属资源组
- 第一个参数
实际运行示例:若
module.env_vars.resourcegroup_prefix的取值为prod-chinanorth3,这行代码最终给app_resourcegroup_name的赋值结果为prod-chinanorth3-app
这种写法是Terraform项目里的通用命名规范实践:统一从公共模块读取资源命名前缀,切换部署环境时仅需修改公共模块的前缀配置,所有关联资源的命名会自动同步更新,既避免硬编码带来的修改遗漏问题,也能保证全项目资源命名规则统一。
内容的提问来源于stack exchange,提问作者itye1970
相关产品推荐
相关产品推荐

