共用方式為


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`