CycleCloud クラスター テンプレート ファイルの解析
CycleCloud は、パラメーター値を解決し、関数の論理的な評価を実行できます。
パラメーターの型
CycleCloud は、いくつかの基本的な種類のパラメーターを処理します。 ほとんどの場合、次のように処理されます。
Attribute = foo # string
Attribute = 1 # integer
Attribute = 1.1 # double
Attribute = false # boolean
Attribute = foo, bar # string[]
より明示的にするには、文字列値を二重引用符 (例: Attribute = "foo"
) で囲むことができます。 これは、値が数値のように見えるが、文字列 (バージョン番号など) として解釈される必要がある場合に便利です。 ブール値は、ベア トークンまたは (大文字とfalse
小文字をtrue
区別しない) に設定できます。 コンマ区切りの値はリストとして解釈され、要素は上記と同じ規則を使用して解釈されます。
パラメーター値の評価
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 と評価される式を指定して、2 つの値のいずれかを返します。
構文:
ifThenElse(predicate, trueValue, falseValue)
引数:
名前 | 必須 | 説明 |
---|---|---|
predicate | はい | true または false と評価される式。 |
trueValue | はい | が true に評価されたときに predicate 使用する値。 |
falseValue | はい | が false に評価されたときに predicate 使用する値。 |
ifUndefined
特定の式を評価した結果が未定義の場合は、代わりに別の値を返します。 それ以外の場合は、単に結果を返します。
構文:
ifUndefined(expression, value)
引数:
名前 | 必須 | 説明 |
---|---|---|
expression | はい | 評価する式。 |
value | はい | が undefined と評価されたときに expression 返される値。 |
regexp
指定された文字列に対して正規表現の一致を実行し、一致がある場合は true を返し、それ以外の場合は false を返します。
構文:
regexp(pattern, target, [options])
引数:
名前 | 必須 | 説明 |
---|---|---|
pattern | はい | Java スタイルの正規表現。 |
ターゲット (target) | はい | 入力文字列。 |
options | no | 正規表現を評価するときに使用するオプション。 詳細については、Java の正規表現フラグに関する java.util.regex.Pattern ページを参照してください。 |
regexps
指定した文字列に対して正規表現の置換を実行し、新しい文字列を返します。
構文:
regexps(pattern, target, substitution, [options])
引数:
名前 | 必須 | 説明 |
---|---|---|
pattern | はい | 置き換える文字列と一致する Java スタイルの正規表現。 |
ターゲット (target) | はい | 入力文字列。 |
substitution | はい | 正規表現に一致する 部分 target の代わりに置き換える新しい文字列。 |
options | no | 正規表現を評価するときに使用するオプション。 詳細については、Java の正規表現フラグに関する java.util.regex.Pattern ページを参照してください。 |
size
指定した文字列の長さを返します。
構文:
size(string)
引数:
名前 | 必須 | 説明 |
---|---|---|
string | はい | 確認する文字列。 |
strjoin
区切り記号を使用して複数の文字列を連結します。
構文:
strjoin(separator, strings)
引数:
名前 | 必須 | 説明 |
---|---|---|
separator | はい | 文字列の間に追加する文字列区切り記号。 |
文字列 | はい | 連結する文字列の一覧。 関数引数の可変数として指定することもできます。 strjoin(separator, string1, string2, string3...) |
substr
開始インデックスから終了インデックス (終了インデックスが指定されていない場合は文字列の末尾) に文字列の一部を返します。
構文:
substr(string, startIndex, [endIndex])
引数:
名前 | 必須 | 説明 |
---|---|---|
string | はい | 入力文字列。 |
startIndex | はい | 使用する開始インデックス。 |
endIndex | no | オプションの終了インデックス。 |
trim
文字列の先頭と末尾からすべての空白文字を削除し、結果を返します。
構文:
trim(string)
引数:
名前 | 必須 | 説明 |
---|---|---|
string | はい | トリムする文字列。 |
使用可能な演算子
演算子 | 定義 |
---|---|
-, +, /, * | 算術 |
<、 <=、 >=、 > | コンパレータ |
==、!= | 等値エバリュエーター |
&&、|| | 複合ブール演算子 |
Special ClusterName 変数
常に提供される 1 つの変数は です ${ClusterName}
。 これは CycleCloud クラスターの名前に評価されます。
EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource
相対時間
CycleCloud は、時間の前後のバックティックを相対時間として解釈します。2 番目、分、日をサポートします。
ThrottleCapacityTime=`10m`
Attribute1=`30s`
Attribute2=`7d`