你当前正在访问 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"
,) 。 如果值看起来像数字,但应解释为 (版本号的字符串(例如,) ),这可能很有用。 布尔值可以设置为裸标记 true
或 false
(不区分大小写的) 。 逗号分隔的值解释为列表,而元素则使用上述相同规则进行解释。
参数值评估
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`