Sdílet prostřednictvím


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`