Analýza souboru šablony clusteru CycleCloud
CycleCloud dokáže přeložit hodnoty parametrů a provádět logické vyhodnocení funkcí.
Typy parametrů
CycleCloud zpracovává několik základních typů parametrů. Ve většině případů je zpracuje podle očekávání:
Attribute = foo # string
Attribute = 1 # integer
Attribute = 1.1 # double
Attribute = false # boolean
Attribute = foo, bar # string[]
Aby byly explicitnější, můžou být řetězcové hodnoty ohraničené dvojitými uvozovkami (například Attribute = "foo"
). To může být užitečné v případě, že hodnota vypadá jako číslo, ale měla by být interpretována jako řetězec (například čísla verzí). Logické hodnoty je možné nastavit na holé tokeny true
nebo false
(nerozlišují se malá a velká písmena). Hodnoty oddělené čárkami jsou interpretovány jako seznamy a prvky jsou následně interpretovány pomocí stejných pravidel jako výše.
Vyhodnocení hodnoty parametru
CycleCloud přímo interpretuje hodnoty parametrů, které používají $
notaci nebo ${}
.
MyAttribute = $MyParameter
MyAttribute2 = ${MyParameter2}
MyAttributeList = $Param1, $Param2
Funkce využívající parametry
Analyzátor šablon CycleCloud dokáže provádět matematické a ternární logické analýzy, jak je vidět níže.
MaxCoreCount = ${HyperthreadedCoreCount/2}
SubnetId = ${ifThenElse($Autoscale, $BurstSubnet, $FixedSubnet)}
JetpackPlatform = ${imageselect == "windows" ? "windows" : "centos-7"}
Dostupné funkce:
Poznámka
Tento seznam není vyčerpávající, ale obsahuje některé z nejčastěji používaných funkcí.
ifThenElse
Funguje jako ternární operátor. Vrátí jednu ze dvou hodnot zadaných výrazem, který se vyhodnotí jako true nebo false.
Syntaxe:
ifThenElse(predicate, trueValue, falseValue)
Argumenty:
Name | Povinné | Popis |
---|---|---|
Predikátu | ano | Výraz, který se vyhodnotí jako true nebo false. |
Truevalue | ano | Hodnota, která se má použít při predicate vyhodnocení na hodnotu true. |
Falsevalue | ano | Hodnota, která se má použít při predicate vyhodnocení na false. |
ifUndefined
Pokud výsledek vyhodnocení daného výrazu není definován, vrátí místo toho jinou hodnotu. V opačném případě jednoduše vrátí výsledek.
Syntaxe:
ifUndefined(expression, value)
Argumenty:
Name | Povinné | Popis |
---|---|---|
expression | ano | Výraz, který se má vyhodnotit. |
hodnota | ano | Hodnota, která se má vrátit, když expression se vyhodnotí jako nedefinovaná. |
Regexp
Provede shodu regulárního výrazu s daným řetězcem a vrátí hodnotu true, pokud došlo ke shodě, v opačném případě false.
Syntaxe:
regexp(pattern, target, [options])
Argumenty:
Name | Povinné | Popis |
---|---|---|
Vzor | ano | Regulární výraz ve stylu Javy. |
Cíl | ano | Vstupní řetězec |
možnosti | ne | Možnosti, které se mají použít při vyhodnocování regulárního výrazu Další podrobnosti najdete v tématu Příznaky regulárního výrazu java.util.regex.Pattern v Javě. |
regexps
Provede nahrazení regulárního výrazu u daného řetězce a vrátí nový řetězec.
Syntaxe:
regexps(pattern, target, substitution, [options])
Argumenty:
Name | Povinné | Popis |
---|---|---|
Vzor | ano | Regulární výraz ve stylu Javy, který odpovídá řetězci, který se má nahradit. |
Cíl | ano | Vstupní řetězec |
Nahrazení | ano | Nový řetězec, který se má nahradit místo části, jejíž část target odpovídá regulárnímu výrazu. |
možnosti | ne | Možnosti, které se mají použít při vyhodnocování regulárního výrazu Další podrobnosti najdete v tématu Příznaky regulárního výrazu java.util.regex.Pattern v Javě. |
size
Vrátí délku daného řetězce.
Syntaxe:
size(string)
Argumenty:
Name | Povinné | Description |
---|---|---|
řetězec | ano | Řetězec, který chcete zkontrolovat. |
strjoin
Zřetězí více řetězců dohromady pomocí oddělovače.
Syntaxe:
strjoin(separator, strings)
Argumenty:
Name | Povinné | Popis |
---|---|---|
Oddělovač | ano | Oddělovač řetězců pro připojení mezi řetězce. |
řetězce | ano | Seznam řetězců ke zřetězení. Lze také zadat jako proměnný počet argumentů funkce: strjoin(separator, string1, string2, string3...) |
podřetěžek
Vrátí část řetězce od počátečního indexu po koncový index (nebo konec řetězce, pokud není zadaný žádný koncový index).
Syntaxe:
substr(string, startIndex, [endIndex])
Argumenty:
Name | Povinné | Description |
---|---|---|
řetězec | ano | Vstupní řetězec |
Startindex | ano | Počáteční index, který se má použít. |
endIndex | ne | Volitelný koncový index. |
Trim
Odebere všechny prázdné znaky ze začátku a konce řetězce a vrátí výsledek.
Syntaxe:
trim(string)
Argumenty:
Name | Povinné | Description |
---|---|---|
řetězec | ano | Řetězec, který chcete oříznout. |
Dostupné operátory
Operátor | Definice |
---|---|
-, +, /, * | Aritmetické |
<, <=, >=, > | komparátory |
==, != | hodnotitelé rovnosti |
&&| | složené logické operátory |
Speciální proměnná ClusterName
Vždy zadanou proměnnou je ${ClusterName}
jedna proměnná . To se vyhodnotí jako název clusteru CycleCloud.
EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource
Relativní čas
CycleCloud interpretuje back-ticks kolem doby trvání jako relativní čas; sekundu, minutu a den.
ThrottleCapacityTime=`10m`
Attribute1=`30s`
Attribute2=`7d`