Terraform 1.7中如何实现字符串与变量的拼接?
Terraform 1.7 字符串与变量拼接实现方案
1. 先声明environment_name变量
在你的Terraform配置的variables.tf文件中添加如下变量定义,限制可选值仅为test、stage、prod:
variable "environment_name" { type = string description = "部署环境标识" # 限制可选值范围 validation { condition = contains(["test", "stage", "prod"], var.environment_name) error_message = "environment_name 参数仅允许传入 test、stage、prod 三个值" } # 可按需设置默认值,也可以删除default字段要求执行时必须传参 default = "test" }
2. 替换资源中的硬编码值
Terraform 1.7 原生支持${}字符串插值语法,直接把变量嵌入到目标字符串的对应位置即可,修改后的fusionauth_tenant资源配置如下:
resource "fusionauth_tenant" "tenant" { name = "Test (${var.environment_name})" email_configuration { default_from_name = "FusionAuth [${var.environment_name}]" verification_email_template_id = fusionauth_email.verification_template.id } }
可选写法:使用format函数实现
如果你偏好显式的字符串格式化写法,也可以用Terraform内置的format函数,效果和插值语法完全一致:
- name字段写法:
name = format("Test (%s)", var.environment_name) - default_from_name字段写法:
default_from_name = format("FusionAuth [%s]", var.environment_name)
内容的提问来源于stack exchange,提问作者cloudbud
相关产品推荐
相关产品推荐

