次の方法で共有


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`