Terraform 常用语法(三)

网友投稿 566 2022-09-28

Terraform 常用语法(三)

Expressions 表达式

条件表达式

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: "${INDEX}=${VAR}"]

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 : "${i} = ${v}"][ "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_listtolist([ { "name" = "test" "role" = "dev" }, { "name" = "whale" "role" = "admin" },])> var.info_list[*].nametolist([ "test", "whale",])> var.info_list[*].roletolist([ "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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 集合框架 Queue 和 Stack 体系
下一篇:Terraform 常用语法(二)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~