你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

CycleCloud 群集模板文件分析

CycleCloud 能够解析参数值并执行函数的逻辑计算。

参数类型

CycleCloud 处理多种基本类型的参数。 在大多数情况下,它会按预期处理它们:

Attribute = foo      # string
Attribute = 1        # integer
Attribute = 1.1      # double
Attribute = false    # boolean
Attribute = foo, bar # string[]

为了更明确,字符串值可以用双引号括起来, (例如 Attribute = "foo" ,) 。 如果值看起来像数字,但应解释为 (版本号的字符串(例如,) ),这可能很有用。 布尔值可以设置为裸标记 truefalse (不区分大小写的) 。 逗号分隔的值解释为列表,而元素则使用上述相同规则进行解释。

参数值评估

CycleCloud 直接解释使用 $${} 表示法的参数值。

MyAttribute = $MyParameter
MyAttribute2 = ${MyParameter2}
MyAttributeList = $Param1, $Param2

使用参数的函数

CycleCloud 模板分析程序能够执行数学运算并执行三元逻辑分析,如下所示。

MaxCoreCount = ${HyperthreadedCoreCount/2}
SubnetId = ${ifThenElse($Autoscale, $BurstSubnet, $FixedSubnet)}
JetpackPlatform = ${imageselect == "windows" ? "windows" : "centos-7"}

可用函数:

注意

此列表并不全面,但涵盖了一些最常用的函数。

ifThenElse

充当三元运算符。 返回给定表达式的两个值之一,该表达式的计算结果为 true 或 false。

语法:

ifThenElse(predicate, trueValue, falseValue)

参数:

名称 必须 说明
predicate 计算结果为 true 或 false 的表达式。
trueValue 计算结果为 true 时 predicate 要使用的值。
falseValue 计算结果为 false 时 predicate 要使用的值。

ifUndefined

如果计算给定表达式的结果未定义,则返回不同的值。 否则,只需返回结果。

语法:

ifUndefined(expression, value)

参数:

名称 必须 说明
表达式 要计算的表达式。
value 计算结果为 undefined 时 expression 要返回的值。

regexp

对给定字符串执行正则表达式匹配,如果存在匹配项,则返回 true,否则返回 false。

语法:

regexp(pattern, target, [options])

参数:

名称 必须 说明
pattern Java 样式正则表达式。
目标 输入字符串。
options 计算正则表达式时要使用的选项。 有关更多详细信息,请参阅 上的 java.util.regex.Pattern Java 正则表达式标志。

regexps

对给定字符串执行正则表达式替换,并返回新字符串。

语法:

regexps(pattern, target, substitution, [options])

参数:

名称 必须 说明
pattern 与要替换的字符串匹配的 Java 样式正则表达式。
目标 输入字符串。
substitution 要替换与正则表达式匹配的 部分 target 的新字符串。
options 计算正则表达式时要使用的选项。 有关更多详细信息,请参阅 上的 java.util.regex.Pattern Java 正则表达式标志。

大小

返回给定字符串的长度。

语法:

size(string)

参数:

名称 必须 说明
字符串 要检查的字符串。

strjoin

使用分隔符将多个字符串连接在一起。

语法:

strjoin(separator, strings)

参数:

名称 必须 说明
separator 在字符串之间追加的字符串分隔符。
字符串 要串联的字符串列表。 还可以指定为可变数量的函数参数: strjoin(separator, string1, string2, string3...)

substr

返回从开始索引到结束索引 (的字符串的一部分,如果未) 指定结束索引,则返回字符串的结束部分。

语法:

substr(string, startIndex, [endIndex])

参数:

名称 必须 说明
字符串 输入字符串。
startIndex 要使用的开始索引。
endIndex 可选的结束索引。

trim

从字符串的开头和结尾删除所有空格字符,并返回结果。

语法:

trim(string)

参数:

名称 必须 说明
字符串 要裁剪的字符串。

可用运算符

操作员 定义
-, +, /, * 算术
<、 <=、 >=、 > 比较
==, != 相等计算器
&&, || 复合布尔运算符

特殊 ClusterName 变量

始终提供的一个变量是 ${ClusterName}。 计算结果为 CycleCloud 群集的名称。

EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource

相对时间

CycleCloud 将持续时间周围的倒计时周期解释为相对时间;支持秒、分钟和日。

ThrottleCapacityTime=`10m` 
Attribute1=`30s`
Attribute2=`7d`