Terraform 常用语法(三)
  TEZNKK3IfmPf 2023年11月14日 17 0

条件表达式

condition ? true_val : false_val
  • condition 条件
  • true_val 条件为 true 的值
  • false_val 条件为false 的值

当 region 变量存在时,region=var.region,反之 region="cn-hangzhou"

terraform console
> var.region != "" ? var.region: "cn-hangzhou"
"cn-beijing"

for 表达式

借助 for 表达式可以对数据进行处理,生成新的对象;

[ for VAR in OBJECT : VAR]
[ for INDEX, VAR in OBJECT: "="]
variable "env_list" {
type = list
default = ["dev", "test", "prod"]
}


> [for i in var.env_list : i]
[
"dev",
"test",
"prod",
]
> [for i,v in var.env_list : " = "]
[
"0 = dev",
"1 = test",
"2 = prod",
]

splat 表达式

splat 表达式提供了一种更简洁的方式来表达可以用 for 表达式执行的常见操作

variable "info_list" {
type = list
default = [{
name = "test",
role = "dev",
},
{
name = "whale",
role = "admin",
}
]
}

#
> var.info_list
tolist([
{
"name" = "test"
"role" = "dev"
},
{
"name" = "whale"
"role" = "admin"
},
])
> var.info_list[*].name
tolist([
"test",
"whale",
])
> var.info_list[*].role
tolist([
"dev",
"admin",
])

内置函数

Terrform 语言包含许多内置函数,可以从表达式中调用这些函数来转换。
函数调用的一般语法是函数名后跟括号中以逗号分隔的参数。

function(arg1, arg2)

数值函数

max() 获取最大值
min() 获取最小值
parseint() 将字符串解析为整数

whale@WhaledeMacBook-Pro dev % terraform console
> max(1,2,3,3,4,5)
5
> max([1,2,3,3,4,5]...)
5
> parseint("101", 10)
101
> parseint("101", 2)
5

String 字符串函数

format() 格式化
join() 字符串拼接
replace() 替换字符串

> format("Hello %s", "whale")
"Hello whale"
> join(",", ["name","age","title"])
"name,age,title"
> replace("a=b=c","=","+")
"a+b+c"
> split(",","name,age,title")
tolist([
"name",
"age",
"title",
])

Collection 集合函数

函数

功能

alltrue() anytrue()

判断元素中都是、存在 为true

chunklist(list, size)

按照指定

compat(list)

去除list中的课空元素

con(list1, list2)

合并两个list

contains(list, value)

判断元素是否存在 list 中

distinct(list)

去除 list 中的重复元素

element(list,index) list[index]

根据index获取list中的元素

flatten(list,list,list)

将多层 list 转换成单 list

index(list,value)

返回value元素的index

Map 映射函数

函数

功能

length(list)

计算list 的长度

lookup(map,key,default)

检索map的key,不存在返回 default

merge(map1,map2,map3)

合并map,相同key 会被最后覆盖

keys(map)

创建map中key 的list

values(map)

创建map中value 的list


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

TEZNKK3IfmPf