CycleCloud-Clustervorlagendateianalyse
CycleCloud ist in der Lage, Parameterwerte aufzulösen und eine logische Auswertung von Funktionen durchzuführen.
Parametertypen
CycleCloud verarbeitet mehrere grundlegende Parametertypen. In den meisten Fällen werden sie wie erwartet behandelt:
Attribute = foo # string
Attribute = 1 # integer
Attribute = 1.1 # double
Attribute = false # boolean
Attribute = foo, bar # string[]
Um expliziter zu sein, können Zeichenfolgenwerte von doppelten Anführungszeichen umgeben werden (z. B Attribute = "foo"
. ). Dies kann nützlich sein, wenn ein Wert wie eine Zahl aussieht, aber als Zeichenfolge interpretiert werden sollte (z. B. Versionsnummern). Boolesche Werte können auf die bloßen Token true
oder false
(ohne Beachtung der Groß-/Kleinschreibung) festgelegt werden. Durch Trennzeichen getrennte Werte werden als Listen interpretiert, und Elemente werden wiederum mit den gleichen Regeln wie oben interpretiert.
Parameterwertauswertung
CycleCloud interpretiert Direkt Parameterwerte, die die $
Notation oder ${}
verwenden.
MyAttribute = $MyParameter
MyAttribute2 = ${MyParameter2}
MyAttributeList = $Param1, $Param2
Funktionen mithilfe von Parametern
Der CycleCloud-Vorlagenparser ist in der Lage, mathematische und ternäre Logikanalysen durchzuführen, wie unten dargestellt.
MaxCoreCount = ${HyperthreadedCoreCount/2}
SubnetId = ${ifThenElse($Autoscale, $BurstSubnet, $FixedSubnet)}
JetpackPlatform = ${imageselect == "windows" ? "windows" : "centos-7"}
Verfügbare Funktionen:
Hinweis
Diese Liste ist nicht umfassend, enthält jedoch einige der am häufigsten verwendeten Funktionen.
ifThenElse
Fungiert als ternärer Operator. Gibt einen von zwei Werten für einen Ausdruck zurück, der zu true oder false ausgewertet wird.
Syntax:
ifThenElse(predicate, trueValue, falseValue)
Argumente:
Name | Erforderlich | BESCHREIBUNG |
---|---|---|
predicate | ja | Ein Ausdruck, der mit "true" oder "false" ausgewertet wird. |
trueValue | ja | Der Wert, der verwendet werden soll, wenn predicate er auf "true" ausgewertet wird. |
falseValue | ja | Der Wert, der verwendet werden soll, wenn predicate er als false ausgewertet wird. |
ifUndefined
Wenn das Ergebnis der Auswertung eines bestimmten Ausdrucks nicht definiert ist, gibt stattdessen einen anderen Wert zurück. Andernfalls wird einfach das Ergebnis zurückgegeben.
Syntax:
ifUndefined(expression, value)
Argumente:
Name | Erforderlich | BESCHREIBUNG |
---|---|---|
expression | ja | Der auszuwertende Ausdruck. |
value | ja | Der Wert, der zurückgegeben werden soll, wenn expression er in undefined ausgewertet wird. |
regexp
Führt eine Übereinstimmung mit regulären Ausdrücken für die angegebene Zeichenfolge aus und gibt true zurück, wenn eine Übereinstimmung vorhanden ist, andernfalls false.
Syntax:
regexp(pattern, target, [options])
Argumente:
Name | Erforderlich | BESCHREIBUNG |
---|---|---|
pattern | ja | Ein regulärer Ausdruck im Java-Stil. |
target | ja | Die Eingabezeichenfolge. |
Optionen | nein | Optionen, die beim Auswerten des regulären Ausdrucks verwendet werden sollen. Weitere Informationen finden Sie unter Reguläre Ausdrucksflags von java.util.regex.Pattern Java. |
regexps
Führt reguläre Ausdrucksersetzung für die angegebene Zeichenfolge aus und gibt die neue Zeichenfolge zurück.
Syntax:
regexps(pattern, target, substitution, [options])
Argumente:
Name | Erforderlich | BESCHREIBUNG |
---|---|---|
pattern | ja | Ein regulärer Ausdruck im Java-Stil, der der zu ersetzenden Zeichenfolge entspricht. |
target | ja | Die Eingabezeichenfolge. |
substitution | ja | Die neue Zeichenfolge, die anstelle des Teils ersetzt werden soll, der mit target dem regulären Ausdruck übereinstimmt. |
Optionen | nein | Optionen, die beim Auswerten des regulären Ausdrucks verwendet werden sollen. Weitere Informationen finden Sie unter Reguläre Ausdrucksflags von java.util.regex.Pattern Java. |
size
Gibt die Länge einer angegebenen Zeichenfolge zurück.
Syntax:
size(string)
Argumente:
Name | Erforderlich | BESCHREIBUNG |
---|---|---|
Zeichenfolge | ja | Die zu überprüfende Zeichenfolge. |
strjoin
Verkettet mehrere Zeichenfolgen mithilfe eines Trennzeichens.
Syntax:
strjoin(separator, strings)
Argumente:
Name | Erforderlich | BESCHREIBUNG |
---|---|---|
Trennzeichen | ja | Ein Zeichenfolgentrennzeichen, das zwischen Zeichenfolgen angefügt werden soll. |
Zeichenfolgen | ja | Eine Liste der zu verkettenden Zeichenfolgen. Kann auch als variable Anzahl von Funktionsargumenten angegeben werden: strjoin(separator, string1, string2, string3...) |
substr
Gibt einen Teil einer Zeichenfolge vom Startindex zum Endindex zurück (oder das Ende der Zeichenfolge, wenn kein Endindex angegeben ist).
Syntax:
substr(string, startIndex, [endIndex])
Argumente:
Name | Erforderlich | BESCHREIBUNG |
---|---|---|
Zeichenfolge | ja | Die Eingabezeichenfolge. |
startIndex | ja | Der zu verwendende Startindex. |
endIndex | nein | Ein optionaler Endindex. |
trim
Entfernt alle Leerzeichen vom Anfang und Ende einer Zeichenfolge und gibt das Ergebnis zurück.
Syntax:
trim(string)
Argumente:
Name | Erforderlich | BESCHREIBUNG |
---|---|---|
Zeichenfolge | ja | Die zu kürzende Zeichenfolgen. |
Verfügbare Operatoren
Operator | Definition |
---|---|
-, +, /, * | Arithmetisch |
<, <=, >=, > | Komparatoren |
==, != | Gleichheitsauswerter |
&&, || | boolesche Zusammengesetzte Operatoren |
Spezielle ClusterName-Variable
Eine Variable, die immer bereitgestellt wird, ist ${ClusterName}
. Dies wird mit dem Namen des CycleCloud-Clusters ausgewertet.
EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource
Relative Zeit
CycleCloud interpretiert Back-Ticks um die Zeitdauer als relative Zeit; Unterstützung für Sekunde, Minute und Tag.
ThrottleCapacityTime=`10m`
Attribute1=`30s`
Attribute2=`7d`