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)
引數:
名稱 | 必要 | Description |
---|---|---|
predicate | 是 | 評估為 true 或 false 的運算式。 |
trueValue | 是 | 評估為 true 時 predicate 要使用的值。 |
falseValue | 是 | 評估為 false 時 predicate 要使用的值。 |
ifUndefined
如果評估指定表達式的結果未定義,請改為傳回不同的值。 否則只會傳回結果。
語法:
ifUndefined(expression, value)
引數:
名稱 | 必要 | 描述 |
---|---|---|
expression | 是 | 要評估的運算式。 |
值 | 是 | 評估為未定義時 expression 要傳回的值。 |
Regexp
在指定的字串上執行正則表達式比對,如果符合則傳回 true,否則傳回 false。
語法:
regexp(pattern, target, [options])
引數:
名稱 | 必要 | Description |
---|---|---|
模式 | 是 | Java 樣式正則表達式。 |
目標 | 是 | 輸入字串。 |
選項 | 否 | 評估正則表示式時要使用的選項。 如需詳細資訊,請參閱 上的 java.util.regex.Pattern Java 正則表示式旗標。 |
regexps
在指定的字串上執行正則表達式替代,並傳回新的字串。
語法:
regexps(pattern, target, substitution, [options])
引數:
名稱 | 必要 | Description |
---|---|---|
模式 | 是 | Java 樣式正則表示式,符合要取代的字串。 |
目標 | 是 | 輸入字串。 |
substitution | 是 | 要取代的新字串,取代的 部分 target 符合正則表示式。 |
選項 | 否 | 評估正則表示式時要使用的選項。 如需詳細資訊,請參閱 上的 java.util.regex.Pattern Java 正則表示式旗標。 |
{1}size{2}
傳回指定字串的長度。
語法:
size(string)
引數:
名稱 | 必要 | Description |
---|---|---|
字串 | 是 | 要檢查的字串。 |
strjoin
使用分隔符將多個字串串連在一起。
語法:
strjoin(separator, strings)
引數:
名稱 | 必要 | Description |
---|---|---|
separator | 是 | 字串之間要附加的字串分隔符。 |
字串 | 是 | 要串連的字串清單。 也可以指定為函式自變數的變數數目: strjoin(separator, string1, string2, string3...) |
substr
傳回字串的一部分,從開始索引傳回至結束索引 (,如果沒有指定結束索引,則傳回字元串結尾) 。
語法:
substr(string, startIndex, [endIndex])
引數:
名稱 | 必要 | Description |
---|---|---|
字串 | 是 | 輸入字串。 |
startIndex | 是 | 要使用的開始索引。 |
endIndex | 否 | 選擇性的結束索引。 |
修剪
從字串的開頭和結尾移除所有空格符,並傳回結果。
語法:
trim(string)
引數:
名稱 | 必要 | Description |
---|---|---|
字串 | 是 | 要修剪的字串。 |
可用的運算子
運算子 | 定義 |
---|---|
-, +, /, * | 算術 |
<, <=, =, >> | 比較 |
==, != | 等號評估工具 |
&&, || | 複合布爾運算符 |
Special ClusterName 變數
一律提供一個變數是 ${ClusterName}
。 這會評估為 CycleCloud 叢集的名稱。
EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource
相對時間
CycleCloud 會將時間持續時間前後的回刻度解譯為相對時間;支援第二、分鐘和天。
ThrottleCapacityTime=`10m`
Attribute1=`30s`
Attribute2=`7d`