Terraform小知识-字符串拼接
发布时间
阅读量:
阅读量
在Terraform中,可借助字符串插值将多个静态文本进行拼接生成动态内容。通过使用${}语法可以在生成的字符串中嵌入变量的实时数据,并根据需要完成多段信息的整合与展示。
举个例子来说吧,在这个案例中我们有两个变量 name 和 region 我们希望创建一个AWS S3存储桶并将它的名称设置为 my-bucket-us-west-2 其中my-bucket这个部分是来自 name 这个变量而 us-west-2 则取自 region 这个变量 通过以下代码段我们可以实现这一目标:
gams
Copy
variable "name" {
default = "my-bucket"
}
variable "region" {
default = "us-west-2"
}
resource "aws_s3_bucket" "my_bucket" {
bucket = "${var.name}-${var.region}-bucket"
# 其他参数...
}
在上面的代码中,在{var.name}-{var.region}处采用了字符串内联化处理的方式,并将变量名与区域号进行组合运算;这种运算的结果被用作标识存储桶的名称
除此以外还可以使用join 函数来拼接字符串
在 Terraform 平台中提供了一种强大的工具允许你通过 join 功能进行字符串连接操作。该工具的具体用法将基于以下语法结构展开。
stylus
Copy
join(separator, list)
其中,separator 是用于分隔列表项的字符串,list 是要连接的字符串列表。例如,以下代码将连接两个字符串:
gams
Copy
variable "string1" {
default = "Hello"
}
variable "string2" {
default = "World"
}
output "concatenated_string" {
value = join(" ", [var.string1, var.string2])
}
在上述示例中,“join”函数用于将两个字符串var.string1和var.string2结合在一起,并通过空格字符实现分隔。连接后的字符串结果为“Hello World”。
特别提示:在join函数中用于处理数据时,在第二个参数list需满足条件为一个列表时,请确保将字符串用方括号包装成一个列表。
这里我创建s3 测试。。不支持空格和大写字母
variable "name" {
default = "my-bucket"
}
variable "region" {
default = "us-west-2"
}
variable "string1" {
default = "hello"
}
variable "string2" {
default = "worlddfdasfdasf"
}
output "concatenated_string" {
value = join(" ", [var.string1, var.string2])
}
resource "aws_s3_bucket" "my_bucket1" {
bucket = join("-", [var.string1, var.string2])
# 其他参数...
}
全部评论 (0)
还没有任何评论哟~
